我在Google App Engine上的實體中有一個datetime屬性。當我插入新記錄時,我將此屬性設置爲:如何在App Engine(JAVA)Datastore中獲取當天的記錄?
Date date = new Date();
newEntity.setProperty("dateTime", date);
如何查詢使用datetime屬性保存的記錄?
謝謝。
我在Google App Engine上的實體中有一個datetime屬性。當我插入新記錄時,我將此屬性設置爲:如何在App Engine(JAVA)Datastore中獲取當天的記錄?
Date date = new Date();
newEntity.setProperty("dateTime", date);
如何查詢使用datetime屬性保存的記錄?
謝謝。
在您的實體上執行查詢,按dateTime
屬性進行篩選。
首先計算今天開始的時候,是這樣的:
Calendar c = Calendar.getInstance(); // You might wanna get instance based on user's time zone
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
Date dayStart = c.getTime();
和過濾器用於其dateTime >= dayStart
實體,在某種程度上是這樣的:
Query q = new Query("YourEntityName");
q.setFilter(new FilterPredicate("dateTime", FilterOperator.GREATER_THAN_OR_EQUAL, dayStart));
// And execute the query:
DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
for (final Entity e : ds.prepare(q).asIterable()) {
// Do something with the entity
}
請注意,在現實生活中,「今天」與時區有關。爲了使這個真正有用,客戶端應該提供他的時區,服務器應該考慮到它。 –
@PeterKnego是的,你是對的。我想提到這一點,但在我寫答案時忘了它。添加它。 – icza
您使用的數據存儲或者雲服務? –