Javaを使用してAzureテーブルストレージサービスをクエリしています。Azureテーブルストレージ無効な入力
私は、タイムスタンプに基づいてAzureテーブルを照会しています。クエリを実行する前に、ローカルのJava日付をUTCに変換しました。
クエリは、 "要求入力の1つが有効でない RequestId。:59445f16-0002-007e-152D-b3e24d000000 時間:2016-05-21T06:50:34.5077574Z" TableServiceExceptionを投げている
Azure Storageエクスプローラを使用して、同じ日付とクエリデータを使用しました。下のスクリーンショットに示すように、私は希望の値を得ることができます。
http://puu.sh/oZD6y/eadcc45859.pngこれは私が間違って何をしているのだろうかと思います。
以下はAzure Tableを照会するためのコードです。 endDateには、Date型のコードの下
String partitionFilter = TableQuery.generateFilterCondition(PARTITION_KEY, QueryComparisons.EQUAL,
partitionKey);
String date2 = TableQuery.generateFilterCondition(TIMESTAMP, QueryComparisons.LESS_THAN_OR_EQUAL, endDate.getTime());
String finalFilter = TableQuery.combineFilters(partitionFilter, Operators.AND, date2);
CloudTable table = getTable(tableName);
TableQuery<TableServiceEntity> query = TableQuery.from(TableServiceEntity.class).where(finalFilter);
Iterable<TableServiceEntity> tableEntries = table.execute(query);
return tableEntries;
であることは、ローカルの日付に
long ts = System.currentTimeMillis();
Date localTime = new Date(ts);
String format = "yyyy/MM/dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat (format);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date gmtTime = new Date(sdf.format(localTime));
System.out.println("Local:" + localTime.toString() + "," + localTime.getTime() + " --> UTC time:" + gmtTime.toString() + "-" + gmtTime.getTime());
を変換するために使用されるこれは、すでに私の時間をたくさん無駄にしました。どんな助けも高く評価されます。
'date2'変数の値を表示できますか?実際には、 'finalFilter'の値を表示する方がずっと簡単です。 –
finalFilterの値は(PartitionKey eq '1')、(Timestamp le 1463796341217L) – user1955255