我在运行时在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进行这两个陈述的测试吗?
答案 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将为您提供当地时间。