我对MultiTimeZone和/或本地日期没有太多经验,所以我在这方面弄脏了我的手,但我不知道如何以及从何处开始,所以我轻轻:-)如何处理播放中的MultiTimeZone和本地时间/日期
我有两种类型的日期(时间)字段:
- 日期(存储天,月,年)
- 日期时间(同1,但包括时间)
How我应该在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 :尽可能晚地转换为用户当地时间
当用户发布包含的表单时尽快将其转换为UTC时间。如果我有时间,我会在这里发布我的代码。