我对 MultiTimeZone 和/或本地日期没有太多经验,所以我对此有所了解,但我不知道如何以及从哪里开始,所以请温柔地对待我 :-)
我有两种类型的日期(时间)字段:
- 日期(存储日、月和年)
- DateTime(与 1 相同,但包括时间)
我应该如何在 Play 中定义我的属性?
@Formats.DateTime(pattern="MM-dd-yyyy")
public Date reqCompletionDate;
或者我应该使用 JodaTime(以前从未使用过):
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
public DateTime reqCompletionDate;
如果我去java.util.Date
,如何将其转换为本地用户Date format
(即 yyyy-MM-dd)?由于格式问题,播放自动绑定会失败,所以我需要为它创建一个自定义活页夹吗?这会影响我所有的Date
领域,对吧?
或者您是否建议对所有日期(时间)字段使用 getter 和 setter,以便我可以传递用户Locale
以获取正确的时间。在这种情况下, Play 的自动绑定将失败,我仍然需要自定义绑定器Date
和DateTime
?
或者我是否过度思考这一切,应该以不同的方式处理这个问题?谢谢你的想法!
UPDATE: 2012-07-23: I think I will follow these steps:
第 1 步:开始播放并使用 UTC 时区进行初始化
第 2 步:根据 UTC 时区使所有日期时间字段格式相同
第 3 步:尽可能晚地转换为用户本地时间
当用户发布包含local date (time)
尽快将其转换为 UTC 时间的表单时。如果我有时间,我会在这里发布我的代码。