我的java程序中一个奇怪的现象

时间:2013-07-11 12:27:33

标签: java gmt java.util.date

我在运行时在java程序中发现了一个奇怪的现象,只看我的代码:

System.out.println(" date " + new Date(1359931355141L).toGMTString() );

此声明的输出为“date 3 2013年2月22:42:35 GMT”,

System.out.println(" date " + new Date(1359931355141L).getDate() );

这个输出是“日期 4 ”,看,为什么不 3 这里???

我无法弄清楚我的节目有什么问题;我怀疑我的JVM是否遇到了错误 大家好,你想对你的JVM进行这两个陈述的测试吗?

3 个答案:

答案 0 :(得分:12)

因为你居住在中欧以东(时区至少是GMT + 1.5Hr)。

getDate()(已弃用的btw)会返回月中的日期,并且它会返回4(而不是3),因为在您的时区中,那个时代已经到了第二天,而在英格兰(格林尼治标准时间)它仍然是一个月3

答案 1 :(得分:1)

你的地点是什么?如果它是格林威治标准时间2013年2月3日22:42:35,但你的地区是格林尼治标准时间+10,那么你当地的日期将是4.没有什么是古怪的,这是预期的行为

答案 2 :(得分:0)

好。这取决于您当前的区域设置。如果GMT时区,GMT会给你时间。 getDate将为您提供当地时间。