Java 在log4j中配置DST(夏令时)

Java 在log4j中配置DST(夏令时),java,log4j,dst,Java,Log4j,Dst,我需要为运行在斐济服务器上的某个应用程序配置DST时间。操作系统级别时间已正确配置: Tue Nov 11 17:28:51 **FJST** 2014 (斐济夏季时间) 我已按如下方式更改了log4j.xml配置并尝试: 这有点好,但这只能是一个解决办法,不能是一个解决方案。有以下两个问题: 需要重新启动所有应用程序两次。在每次DST变更期间,都会出现服务中断。生产是不可能的 我们不能说,每天的时间变化正好是+/-1小时。有些日子可能是50分钟。因此,在这种情况下,日志不会在适当的时间更

我需要为运行在斐济服务器上的某个应用程序配置DST时间。操作系统级别时间已正确配置:

Tue Nov 11 17:28:51 **FJST** 2014
(斐济夏季时间)

我已按如下方式更改了log4j.xml配置并尝试:


这有点好,但这只能是一个解决办法,不能是一个解决方案。有以下两个问题:

  • 需要重新启动所有应用程序两次。在每次DST变更期间,都会出现服务中断。生产是不可能的

  • 我们不能说,每天的时间变化正好是+/-1小时。有些日子可能是50分钟。因此,在这种情况下,日志不会在适当的时间更新

  • 以下java版本是否有修补程序可用于修复此问题“1.7.0_09-icedtea”

    还有什么方法可以将log4j时间更改为操作系统时间?如果是这样的话,这将是一个很好的解决方案,因为不会有太多的服务中断。

    根据,在
    %d
    之后的第二组大括号中的值是一个要在内部传递给的字符串,该字符串表示该字符串应为:

    时区的ID,可以是缩写,如“PST”,全名,如“America/Los_Angeles”,也可以是自定义ID,如“GMT-8:00”

    因此,您应该能够通过太平洋/斐济,在一年中的不同时间自动使用正确的时区偏移

    <param name="ConversionPattern" value="%d{ISO8601}{Pacific/Fiji} %-5p %c{1} [%x] [%t] - %m%n" />
    
    
    
    此外,历史上,斐济在设定DST日期时未提供足够的通知。大多数国家试图建立一个稳定的复发模式,但斐济选择每年宣布DST的变化。2014年的最新更改是,并于11月2日生效,只剩下12天的时间来实施更改并将更改分发到时区数据库。政府迅速采取行动,甲骨文随后于10月31日发布了相应的报告,以纳入这一变化

    请确保您能够将其应用到您的环境中。只要斐济不稳定,你将来也可能需要这样做。这意味着你不想重启生产的第一个要点是不可能的。人们无法预测政府

    关于你的第二个要点:世界上任何地方都没有50分钟移动的时区。除澳大利亚/Lord_Howe班次为30分钟外,所有使用DST班次为一整小时的公司