gpt4 book ai didi

java - JodaTime 打印周期错误?

转载 作者:行者123 更新时间:2023-11-29 06:13:09 25 4
gpt4 key购买 nike

我在尝试打印两个日期之间的给定时间段时遇到问题。

让我告诉你细节,然后我会放代码:

日期 a = 5 月 20 日,日期 b = 6 月 19 日

中间的时间应为 30 天。(或 29 天,无关紧要)

但是根据我的代码,它说只有 1 天。

你能帮我解决这个问题吗?我想要的是让整个时期介于 29 天之间。

谢谢。

public static void main(String args[]) {

Calendar calA = Calendar.getInstance();
calA.set(Calendar.MONTH, 5);
calA.set(Calendar.DAY_OF_MONTH, 20);

Calendar calB = Calendar.getInstance();
calB.set(Calendar.MONTH, 6);
calB.set(Calendar.DAY_OF_MONTH, 19);

DateTime da = new DateTime(calA.getTime());
DateTime db = new DateTime(calB.getTime());
Period p = new Period(da,db);
System.out.println(printPeriod(p));

}

private static String printPeriod(Period period) {

PeriodFormatter monthDaysHours = new PeriodFormatterBuilder()
.appendMonths()
.appendSuffix(" month"," months")
.appendSeparator(",")
.appendDays()
.appendSuffix(" day", " days")
.appendSeparator(",")
.appendHours()
.appendSuffix(" hour"," hours")
.toFormatter();

return monthDaysHours.print(period.normalizeStandardPeriodType());
}

最佳答案

时间段已创建为“4 周零 1 天”- 但您并未打印出周数。

假设您需要年/月/日/时间,将 Period 构造函数调用更改为:

Period p = new Period(da, db, PeriodType.yearMonthDayTime());

然后摆脱对 normalizeStandard() 的调用(我实际上找不到名为 normalizeStandardPeriodType() 的方法;我假设这是一个错字.)

当然,这将忽略该期间的任何年份。您可能会使用:

PeriodType pt = PeriodType.yearMonthDayTime().withYearsRemoved();
Period p = new Period(da, db, pt);

关于java - JodaTime 打印周期错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com