【发布时间】:2016-01-04 10:41:25
【问题描述】:
public class TestTimeZone {
public static void main(String[] args) throws ParseException {
System.setProperty("user.timezone", "PST");
TimeZone.setDefault(null);
Date d1 = new Date(1257062400000L);
Date d2 = new Date(d1.getTime() + 3600000);
DateFormat f = new SimpleDateFormat("yyyy-MM-dd-HH");
System.out.println(f.format(d1).equals(f.format(d2))); // true
System.out.println(d1.equals(f.parse(f.format(d1)))); // false
System.out.println(d1); // Sun Nov 01 01:00:00 PDT 2009
System.out.println(d2); // Sun Nov 01 01:00:00 PST 2009
}
}
-
d1和d2明显不同,因此它们的格式不应该相同。 - 当你格式化和解析
d1时,你会得到d2 - 我将时区设置为 PST 然后创建
d1,它应该创建为PST日期,为什么它被创建为 PDT 日期?
【问题讨论】:
-
我的回答解释了为什么你会看到当前的行为。我无法就如何继续向您提供任何建议,因为我不知道您要实现什么目标。
标签: java timezone simpledateformat dst