初始化LocalDateTime - 零时序

时间:2015-03-27 07:30:27

标签: java jodatime

Initalize LocalDateTime - with zero timings

的正确途径

我使用方法withTime(0, 0, 0, 0)实现看起来像new LocalDateTime().withTime(0, 0, 0, 0);

所以我的问题是在处理DayLight SavingsTimezone anamolies时这种初始化方式会导致任何问题。或者是否有其他选择可以避免这些问题。

提前致谢

1 个答案:

答案 0 :(得分:1)

如果您保持在LocalDateTime的范围内,那么您将不会遇到夏令时或其他时区过渡的任何问题。 LocalDateTime不了解与时区相关的事情。但是:

如果您将任何LocalDateTime转换为DateTime - 具有对全球时间轴的引用的实例,那么您可能会遇到问题。可以在javadoc中找到相关问题的描述。还解释了一些方法弃用的原因(巴西通常在午夜开始夏季时间,因此在午夜创建LocalDateTime不是问题,而是创建DateTime )。

如果您想知道如何安全地将LocalDateTime(任何时间组件可能落入差距)转换为(全局)DateTime,那么Joda-Time不会提供任何冲突策略,不幸。 transition strategies Joda-Time适用是固定的,不可配置:

  

应用时区时,本地日期时间可能会受到影响   夏令时。在夏令时间隙,当地时间   不存在,此方法将抛出异常。在夏令时   重叠,当相同的本地时间出现两次时,此方法返回   第一次出现当地时间。

但是,这种限制的一些解决方法可能是可行的。例如,如果给定DateTimeZone falls in a gap,您可以询问相关LocalDateTime。根据此查询的答案,您可以决定要应用哪个偏移量以转换为DateTime