我正在使用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
答案 0 :(得分:0)
我终于按照@dambros的建议升级到Joda Time 2.9.3了。看起来很奇怪的是,它在2.7版的Production中有效,但这又是另一天的问题。
谢谢!