我的服务器日期配置和在 ubuntu 10.04 上运行 log4j 和 solr 的 java 有问题。
系统时间为 CEST。日期命令输出:
# date
Di 31. Jul 14:05:02 CEST 2012
但是我使用 log4j 记录的应用程序日志中的时间是:
2012-07-31 12:05:02
我在我的 log4j.properties 文件中使用这一行:
log4j.appender.rollingFile.layout.ConversionPattern=%d{ISO8601} %p %t %c - %m%n
现在我构建了一个 jar 来测试包含基本上两行代码的时间:
Date date = new Date(System.currentTimeMillis());
System.out.println(DateFormat.getDateTimeInstance().format(date));
这给了我预期的错误输出:
# java -jar javaDate.jar
31.07.2012 12:05:02
如果我使用时区的虚拟机参数它可以正常工作
java -Duser.timezone=Europe/Berlin -jar javaDate.jar
31.07.2012 14:05:02
但是如果我使用相同的参数来启动使用 log4j 的应用程序,我的日志中仍然会出现错误的时间戳。为什么????