Java log4j:时区格式
我想将log4j消息中的时区信息格式化为Java log4j:时区格式,java,timezone,log4j,Java,Timezone,Log4j,我想将log4j消息中的时区信息格式化为 +hh:mm这样一个完整的时间戳如下所示: 2013-09-05T09:32:10.703+02:00 我知道日期格式说明符Z,但是输出格式是+hhmm,而不是+hh:mm。所以冒号丢失了: 2013-09-10T15:55:34.123+0200 有什么办法可以得到我想要的吗?使用以下模式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 在的javadoc中,您可以阅读(对于X字母): ISO 8601时区:模式字母的数量指定格式化和
+hh:mm
这样一个完整的时间戳如下所示:
2013-09-05T09:32:10.703+02:00
我知道日期格式说明符Z
,但是输出格式是+hhmm
,而不是+hh:mm
。所以冒号丢失了:
2013-09-10T15:55:34.123+0200
有什么办法可以得到我想要的吗?使用以下模式:
yyyy-MM-dd'T'HH:mm:ss.SSSXXX
在的javadoc中,您可以阅读(对于X
字母):
ISO 8601时区:模式字母的数量指定格式化和解析的格式,如下所示:
<!-- console -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="threshold" value="TRACE" />
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern"
value="%d{yyyy-MM-dd'T'hh:mm:ss.SSSXXX} %-5p (%c.java:%L).%M - %m%n" />
</layout>
</appender>
2013-09-12T08:08:18.532-05:00 INFO (Main.java:8).main - Test
e、 g
如果您的配置文件是
log4j.xml
,则可以如下所示:
<!-- console -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="threshold" value="TRACE" />
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern"
value="%d{yyyy-MM-dd'T'hh:mm:ss.SSSXXX} %-5p (%c.java:%L).%M - %m%n" />
</layout>
</appender>
2013-09-12T08:08:18.532-05:00 INFO (Main.java:8).main - Test
结果如下:
<!-- console -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="threshold" value="TRACE" />
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern"
value="%d{yyyy-MM-dd'T'hh:mm:ss.SSSXXX} %-5p (%c.java:%L).%M - %m%n" />
</layout>
</appender>
2013-09-12T08:08:18.532-05:00 INFO (Main.java:8).main - Test
我正在使用带有logback-classic-1.2.3.jar的PatternLayout,下面的日期模式为我提供了悉尼时区,您需要根据GMT进行更新
"timestamp":"%d{yyyy-MM-dd HH:mm:ss, GMT+10}"
上传您的log4j.xml或log4j.properties感谢您的快速回答。我刚刚发现了一个网页,它记录了1.4.2版的SimpleDataFormat,其中的“X”还不受支持。不幸的是,我们使用的是Java 6,而且还不支持“X”。嗨,保罗,yyyy-MM-dd'hh:MM:ss.SSSXXX使用UTC时区吗?嗨,@SumalathaAbhishek-Nope。这只是格式。嗨@PaulVargas,你写的时候我用了XXX。在windows环境中,我根据需要获取带有“+00:03”的日期。但在linux环境中,我得到了一些奇怪的东西。在时间结束时,我得到了“Z”,没有“+00:03”。知道为什么吗?