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

标签 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

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

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/

相关文章:

java - 检查交易终止

java - 如何将 Rome 日期格式 "Sun Jan 08 02:25:00 IST 2012"日期转换为sql日期

javascript - 当事件的呈现选项等于背景时,全日历工具提示无法正常工作

java - Jodatime 是否有一种方法可以获取自某个较早日期以来的月份和日期?

java - 如何用 JodaTime 表示 'time'

java - 检查字符串列表中的任何字符串是否出现在段落(字符串)中?

java - 从Java中的字符串中删除元音和数字?

空字符串的 Java String hashCode

php - 日期格式 - 区域设置 - 小写月份

java - 使用 joda-time 将字符串转换为日期时出现 IllegalArgumentException