【发布时间】:2012-01-04 07:39:53
【问题描述】:
我遇到了一个奇怪的问题:Maven 显示的时间与系统不同。例如:
$ mvn compile | grep Finished
[INFO] Finished at: Wed Jan 04 13:29:50 NOVT 2012
$ LANG=C date
Wed Jan 4 14:29:55 NOVT 2012
这里 Maven 的时间相差 1 小时。
我用谷歌搜索并在这里找到了非常相似的问题,在 SO:new Date(long) gives different results,但没有任何建议的方法对我不起作用:指定 -Duser.timezone=Asia/Novosibirsk 或 -Duser.language=ru 和 -Duser.country=RU 不会影响 Maven 的行为。
我认为问题出在底层系统的 tzdata 上,因为在前一年,我们从夏季时间开始停止移动时间。我已经安装了最新的tzdata-java 包,但没有任何改变。
版本:
- maven 3.0.3
- debian 6.0.1
-
tzdata/tzdata-java2011n-0squeeze1
顺便说一句,在我的 IDE(Springsource Tool Suite)中,我遇到了类似的问题。
提前致谢!
(并且可以随意删除一个或多个与问题无关的标签。)
【问题讨论】:
-
date在您的系统上返回了什么? -
您的 maven 输出显示新西伯利亚时间:因为此处的“Wed Jan 4 14:29:55 NOVT 2012”,NOVT 表示新西伯利亚时区。我认为问题是对您的时区所做的最新更改,而不是 Maven 问题。
-
maven显示的时间不是正确的吗?您是否尝试过更新系统时区数据?
-
@mat 不,Maven 的日期不正确。是的,我已经尝试更新
tzdata包。 -
好点。不幸的是,大多数用户将不得不等到 Sun 重新发布 Java 的时区信息并修正夏令时,MS 将发布 Windows 补丁,Linux 也是如此。