gpt4 book ai didi

java - 持续时间或间隔中的 Joda Time 分钟数

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:57 24 4
gpt4 key购买 nike

我有这个简单的代码:

DateTime date = new DateTime(dateValue);
DateTime currentDate = new DateTime(System.currentTimeMillis());

System.out.println("date: " + date.toString());
System.out.println("currentDate: " + currentDate.toString());

Period period = new Period(currentDate, date);
System.out.println("PERIOD MINUTES: " + period.getMinutes());
System.out.println("PERIOD DAYS: " + period.getDays());

Duration duration = new Duration(currentDate, date);
System.out.println("DURATION MINUTES: " + duration.getStandardMinutes());
System.out.println("DURATION DAYS: " + duration.getStandardDays());

我试图简单地找出两个随机日期之间的天数和分钟数。

这是这段代码的输出:

date: 2012-02-09T00:00:00.000+02:00
currentDate: 2012-02-09T18:15:40.739+02:00
PERIOD MINUTES: -15
PERIOD DAYS: 0
DURATION MINUTES: -1095
DURATION DAYS: 0

我猜我做错了什么,我只是看不到什么。

最佳答案

问题是您没有在周期构造函数中指定周期类型 - 所以它使用默认值“年、月、周、日、小时、分钟、秒和毫秒”。您只看到 15 分钟,因为您没有询问小时数,这将返回 -18。

如果您只需要天数和分钟数,您应该指定:

PeriodType type = PeriodType.forFields(new DurationFieldType[] {
DurationFieldType.days(),
DurationFieldType.minutes()
});

Period period = new Period(currentDate, date, type);
// Now you'll just have minutes and days

重要的是要理解 Duration 是“一定的毫秒数,可以根据不同的单位获取”和有效的 Period 之间的区别从一组字段类型(分钟、月、天等)到值的映射。一个时期内没有一个单一的时间值 - 它是一组值。

关于java - 持续时间或间隔中的 Joda Time 分钟数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214630/

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