有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

夏令时plusHours和plusDays之间的java JodaTime差异

根据JodaTime Javadoc,plusHours和plusDays在为日期添加时间时都会处理DST调整。然而,从我的测试来看,增加一天的时间和增加一天的时间会得到不同的结果。有人能解释一下为什么下面的代码会给出下面的输出吗

代码:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = format.parse("2014-11-01T02:00:00.000-0700");

System.out.println("origDate:  " + date);
System.out.println("plusDays:  " + new DateTime(date).plusDays(1).toDate());
System.out.println("plusHours: " + new DateTime(date).plusHours(24).toDate());

输出:

origDate:  Sat Nov 01 02:00:00 PDT 2014
plusDays:  Sun Nov 02 02:00:00 PST 2014
plusHours: Sun Nov 02 01:00:00 PST 2014

共 (1) 个答案

  1. # 1 楼答案

    并不是所有的本地日都有24小时。假设你在美国太平洋时区工作,由于夏时制转换的倒退,那一天有25个小时

    调用plusHours(24)会增加24小时的确切持续时间

    调用plusDays(1)会增加日历日,即使这一天不是24小时