【问题标题】:Calculate previous day using joda time [duplicate]使用joda时间计算前一天[重复]
【发布时间】:2017-01-03 21:29:02
【问题描述】:

我正在根据夏威夷时区计算时间。我有一个测试场景,我的当前日期是 2017-01-01T10:52:07.656-10:00(1 月 1 日)。当我尝试使用 .minusDays(1) 获取上一个日期时,我得到的日期为 2016-12-31T12:52:07.656-08:00(12 月 31 日)。

现在是我尝试以 MM/DD/YYYY 格式化时的上一个日期。我得到输出为 12/366/2016 而不是 12/31/2016

我的代码:

    DateTime dt4 = new DateTime("2017-01-01T10:52:07.656-10:00");
    System.out.println("Given Date:"+ dt4);
    DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/DD/YYYY");
    System.out.println("Given Date After Date format: "+fmt.print(dt4));

    DateTime previousDay = dt4.minusDays(1);
    System.out.println("Previous Day: "+ previousDay);
    System.out.println("Previous Date After Date format: "+fmt.print(previousDay));

O/p:

给定日期:2017-01-01T12:52:07.656-08:00
给定日期后日期格式:01/01/2017
前一天:2016-12-31T12:52:07.656-08:00
日期格式:12/366/2016

【问题讨论】:

  • 可能你需要ddd 而不是DD

标签: java date jodatime


【解决方案1】:

检查this

您得到 366,因为 2016 年有 366 天,而您选择了最后一天。 大写的 D 是一年中的一天,我认为你想要的是一个月中的一天的小写。

如果您向下滚动,您会看到一些可以帮助您的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多