gpt4 book ai didi

java - DateTime.plusMinutes(..) 返回分钟 -1

转载 作者:行者123 更新时间:2023-12-01 19:45:36 26 4
gpt4 key购买 nike

我在使用 JodaTime 时遇到问题。这是我的方法:

public double calculateTimeDifference(String startedAt) {
DateTime cet = new DateTime(DateTimeZone.forID("CET"));

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss'Z'");
DateTime convertedStartedAt = formatter.parseDateTime(startedAt);

Period period = new Interval(cet, convertedStartedAt).toPeriod();
int minutes = period.getMinutes();

return minutes;
}

我有一个测试,时间增加了 30 分钟:

@Test
public void testTimeDifference() {
DateTime testtime = new DateTime(DateTimeZone.forID("CET")).plusHours(2);
testtime = testtime.plusMinutes(30);

// Format for input
DateTimeFormatter cet = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
// Parsing the date
DateTime requestedFormat = cet.parseDateTime(testtime.toString());
// Format for output
DateTimeFormatter requestedTime = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss'Z'");

double time = carService.calculateTimeDifference(requestedTime.print(requestedFormat));

assertEquals(30, time, 0.0);
}

但是当我运行这个时,输出是:

Expected : 30.0
Actual : 29.0

最佳答案

原因是您生成了两倍的当前日期和时间:一旦到这里:

    DateTime testtime = new DateTime(DateTimeZone.forID("CET")).plusHours(2);

这里:

    DateTime utc = new DateTime(DateTimeZone.forID("CET"));

因此,实际差异是 29 分 59 秒和 360 毫秒(在我的测试中),四舍五入为 29 分钟。

关于java - DateTime.plusMinutes(..) 返回分钟 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53517298/

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