JodaTime在不同环境中的奇怪行为

时间:2016-04-14 14:09:05

标签: java date jodatime

我正在使用JodaTime的DateTimeFormat来表示我的REST API中的一些日期。

我正在使用的格式是

DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss z").withZone(DateTimeZone.forID("EST"));

所以我希望我的日期可以表示为,例如:04/14/2016 08:50:31 EST

问题在于,当我在生产中运行我的代码时,它运行良好(日期表示如上所示),但是当我在本地计算机或暂存中运行它时,它表示如下:

04/14/2016 09:05:53 -05:00

我在两种环境中都使用完全相同的代码。此外,Staging和Production都在Amazon中运行,并且服务器日期设置相同,所以我不知道如何解决这个问题。

我做了一个简单的Main来说明和重现我的问题:

public static void main(String[] args) {
        DateTimeFormatter format = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss z")
                .withZone(DateTimeZone.forID("UTC"));
        System.out.println(new DateTime(new Date()).toString(format));
}

P.S。我正在使用Java 8和JodaTime 2.7

1 个答案:

答案 0 :(得分:0)

我终于按照@dambros的建议升级到Joda Time 2.9.3了。看起来很奇怪的是,它在2.7版的Production中有效,但这又是另一天的问题。

谢谢!