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

标签 java date google-app-engine google-cloud-datastore

我有一个带有日期字段的 Google 应用引擎 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。如此处 [1] 所述,在 Java 和 Pyhton 上都没有方法可以覆盖它。

异常(exception)情况是,在 Python 中有一个类将从 Datastore 中检索“原始”日期并显示其中的日期部分。这不会阻止 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

关于Java - GAE 数据存储以特定格式保存日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690074/

相关文章:

java - 使用 gradle 6.3、OpenJDK 14 和 OpenJFX 14 部署 JavaFX 应用程序

java - 按属性对自定义对象的 ArrayList 进行排序

php - MySQL + PHP 时区问题

java - 如何在 App Engine 中创建针对服务和版本的 cron 作业?

java - 有关 IndexSearcher/IndexReader 和 Directory 的问题

java - Android - Java 解析 JSON

mysql - mysql 查询速度慢,在 6 个月之前的许多最大日期上一对多连接表

java - 当我想读取存储在 blobstore 中的 zip 文件时出现错误

java - Google App Engine 沙箱如何工作?

java - 日期在美国服务器中返回错误的年份