使用joda时间计算前一天

mdfafbf1  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(460)

这个问题在这里已经有答案了

“yyyy-mm-dd 00:00:00+00:00”是哪种java日期格式(6个答案)
四年前关门了。
我是基于夏威夷时区计算时间的。我有一个测试场景,当前日期是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));

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

46qrfjad

46qrfjad1#

看看这个。
你得到366天,因为2016年有366天,你选择了最后一天。大写d代表一年中的一天,我想你想要的是小写d代表一个月中的一天。
如果你向下滚动,你会看到一些可以帮助你的例子。

相关问题