Java - GAE 数据存储以特定格式保存日期

Java - GAE Datastore persisting Date with specific format

我有一个带有日期字段的 Google App Engine JDO 数据存储区实体,如下所示。

@PersistenceCapable
public class Test {

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long id;

    @Persistent
    private Date dateTime;

}

我遇到的问题是它默认为日期时间 (2014-08-30 00:00:00.000Z) 格式,这不是我想要存储日期的方式。我想定义特定格式 'yyyy-MM-dd'。

看起来像 there's support for python to do this。但是,我找不到 Java.

的类似文档

如何更改数据存储区实体定义以支持我要完成的工作?

Datastore 将始终将日期存储为 UTC 以及时间和包含的 tzinfo=None。没有方法可以在 Java 上覆盖它,也没有在 Pyhton 上覆盖这个 [1]。

例外情况是 Python 中有一个 class 将从数据存储中检索 "raw" 日期并显示其中的日期部分。这不会阻止 Datastore 以完整格式存储日期。

简而言之,您所能做的就是忽略时间数据,并使用适当的函数 [2] 操作从 Datastore 检索的数据以仅获取日期。

[1] https://cloud.google.com/appengine/docs/python/datastore/typesandpropertyclasses#datetime

[2] http://docs.oracle.com/javase/7/docs/api/java/util/Date.html