【发布时间】:2013-03-16 17:12:31
【问题描述】:
我想计算两个日期之间的时间差(格式为“yyyyMMddHHmmss”)。基本思路是先将字符串日期转换成毫秒,然后得到时间差。
Calendar c1 = Calendar.getInstance();
c1.setTime(new SimpleDateFormat("yyyyMMddHHmmss").parse("20110327032913"));
System.out.println(c1.getTimeInMillis());
Calendar c2 = Calendar.getInstance();
c2.setTime(new SimpleDateFormat("yyyyMMddHHmmss").parse("20110327025913"));
System.out.println(c2.getTimeInMillis());
结果:
1301189353000
1301191153000
显然,第一个日期晚于第二个日期,但其转换后的毫秒数更小。我在格式上有什么错误吗?
【问题讨论】:
-
它对我来说很好用,打印
1301221753000和1301219953000。您在哪个时区/地区运行? -
随着我的代码运行,第一个值大于第二个。
-
您的代码没有问题,打印的内容正确:ideone.com/EIS1wI
-
我的猜测是您系统的默认语言环境发生了时区更改,类似于this question。
-
@Vulcan:是的,2011 年 3 月 27 日时区更改在许多国家很常见,请参阅 this link
标签: java datetime milliseconds