我正在使用 JodaTime 的 DateTimeFormat 来表示 REST API 中的一些日期。
我使用的格式是
DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss z").withZone(DateTimeZone.forID("EST"));
所以我希望我的日期表示为,例如:04/14/2016 08:50:31 EST
问题是,当我在生产中运行代码时,它运行良好(日期的表示方式如上面的示例),但是当我在本地计算机或暂存中运行它时,它表示如下:
2016年4月14日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));
}
附注我正在使用 Java 8 和 JodaTime 2.7
最佳答案
按照 @dambros 的建议,我终于通过升级到 Joda Time 2.9.3 使其正常工作。看起来奇怪的是它在 2.7 的生产环境中工作,但这是另一个问题。
谢谢!
关于java - JodaTime 在不同环境中的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36625693/