3

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

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

此语句的输出是“ 2013 年 2 月3日 22:42:35 GMT”,并且

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

这样的输出是“日期4 ”,看,为什么不是3

我不知道我的程序出了什么问题;我怀疑我的 JVM 是否遇到了错误。
伙计们,你想在你的 JVM 上测试这两个语句吗?

4

3 回答 3

12

因为您住在中欧东部(时区至少为 GMT+1.5Hr)。

getDate()(顺便说一句,已弃用)返回该月的日期,并且它正在返回4(而不是3),因为在您的时区中,该纪元时间已经进入第二天,而在英格兰(格林威治标准时间)它仍然3是一个月中的一天。

于 2013-07-11T12:32:24.573 回答
1

你的语言环境是什么?如果是 2013 年 2 月 3 日 22:42:35 GMT,但您的语言环境是 GMT+10,那么您的本地日期将为 4。一点也不奇怪,这是预期的行为

于 2013-07-11T12:32:19.200 回答
0

好。这取决于您当前的语言环境。如果 GMT 时区,GMT 会给你时间。getDate 将为您提供您所在地区的时间。

于 2013-07-11T12:34:53.150 回答