Tag: dst

如何编写unit testing以确保我的基于日期/时间的代码适用于所有时区和/ DST?

我正在使用JodaTime 2.1,我正在寻找一种unit testing代码的模式,该代码执行日期/时间操作以确保它在所有时区都表现良好且独立于DST 。 特别: 我如何模拟系统时钟(所以我不必模拟我调用new DateTime()以获取当前时间的所有位置) 如何在默认时区执行相同操作?

从SimpleTimeZone获取ZoneId

使用Java我有一个带有GMT偏移量的SimpleTimeZone实例和来自遗留系统的夏令时信息。 我想检索ZoneId以便能够使用Java 8时间API。 实际上, toZoneId返回没有夏令时信息的ZoneId SimpleTimeZone stz = new SimpleTimeZone( 2 * 60 * 60 * 1000, “GMT”, Calendar.JANUARY,1,1,1, Calendar.FEBRUARY,1,1,1, 1 * 60 * 60 * 1000); stz.toZoneId();

java.util.Date计算天数差异

我试着计算两个日期之间的差异,我注意到了一件事。 仅计算天数时,夏令时的开始时间包含在间隔中,因此结果将在1天内缩短。 为了获得准确的结果,还必须考虑小时值。 例如: SimpleDateFormat format = new SimpleDateFormat(“MM-dd-yyyy”); Date dfrom = format.parse(“03-29-2015”); Date dto = format.parse(“03-30-2015”); long diff = dto.getTime() – dfrom.getTime(); System.out.println(diff); System.out.println(“Days: “+diff / (24 * 60 * 60 * 1000)); System.out.println(“Hours: “+diff / (60 * 60 * 1000) % 24); 输出: 82800000 Days: 0 Hours: 23 有人有更好的解决方案吗?

获取Java中时区的夏令时转换日期

我想知道在Java中最简单的方法是获取将来夏令时更改的日期列表。 这样做的一个相当不公平的方法是简单地迭代一堆多年的日子,对TimeZone.inDaylightTime()进行测试。 这会有效,而且我并不担心效率,因为这只需要在每次我的应用程序启动时运行,但我想知道是否有更简单的方法。 如果你想知道为什么我这样做,那是因为我有一个需要处理包含UTC时间戳的第三方数据的javascript应用程序。 我想要一种可靠的方法在客户端从GMT转换到EST。 请参阅Javascript – Unix时间到特定时区我写了一些javascript,它会做,但我想从服务器获得精确的过渡日期。