我想知道最简单的方法,在java中,获取未来夏时制将发生变化的日期列表。
一种相当不合法的方法是简单地迭代几年的时间,对照timezone.indaylighttime()测试它们。这将工作,我不担心效率,因为这将只需要运行每次我的应用程序启动,但我想知道是否有一个更简单的方法。
如果你想知道我为什么这么做,那是因为我有一个javascript应用程序,它需要处理包含utc时间戳的第三方数据。我想要一个可靠的方式来翻译从格林威治标准时间到东部时间在客户端。请参阅javascript—unix时间到特定时区我已经编写了一些javascript,可以做到这一点,但我希望从服务器获得精确的转换日期。
2条答案
按热度按时间ws51t4hk1#
joda time(一如既往)由于
DateTimeZone.nextTransition
方法。例如:输出:
使用Java8,您可以使用
ZoneRules
用它的nextTransition
以及previousTransition
方法。7uzetpgm2#
java.time文件
现代答案使用java.time,即现代java日期和时间api。
输出,缩写:
不过,我不会太相信这些数据。我不确定英国脱欧后(以及欧盟可能在2021年放弃夏令时(dst))的时间会发生什么。
link:oracle tutorial:date time解释如何使用java.time。