2013-03-15 86 views
3

试图执行但日期比较:的Java的SimpleDateFormat转换

date1=new SimpleDateFormat("yy-MM-dd HH").parse("12-03-25 02")等于

date2=new SimpleDateFormat("yy-MM-dd HH").parse("12-03-25 03")

问题是什么?以date1.getHour我得到3

想法,欢迎

+1

我为'date1.getHours()'得到'2'。必须有一些其他代码影响你的结果。 – matts 2013-03-15 16:37:02

+2

无法在JDK 6上重现,显示实际的程序? – Affe 2013-03-15 16:37:21

+1

我也在jdk中获得2 7 – Pragnani 2013-03-15 16:37:53

回答

4

2012年3月的第25是天哪里夏令时开关做的是许多国家,通常在凌晨2点。所以2AM和3AM在今天同一时间在您的语言环境中。这就是你看到这个的原因。

+0

那么如何处理这样的问题呢? (与我的国家检查,其行军25) – 2013-03-15 16:52:32

+1

良好的捕获。对于其他人:您可以在构造SimpleDateFormat之前通过调用'TimeZone.setDefault(TimeZone.getTimeZone(“CET”));'来确认。 – matts 2013-03-15 16:57:27

+1

这不是问题。结果是正确的。 2AM和3AM代表同一时刻,因此打印2或3无关紧要。 – 2013-03-15 16:59:35