gpt4 book ai didi

java - 使用java的Calendar.add(5,1)并重复多次日期的小时就会出错!

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

这是我的程序:

    public class Test {
public static void main(String []args) {
Calendar a = Calendar.getInstance();
a.setTime(new Date(1949-1900,0,24,0,0,0));
Calendar b=Calendar.getInstance();
b.setTime(new Date(1951-1900,2,24,0,0,0));
System.out.println(a.getTime());
while(!a.equals(b)) {
a.add(Calendar.DAY_OF_YEAR, 1);
System.out.println(a.getTime());
}
System.out.println(a.getTime());
}
}

输出为

Fri Nov 23 01:00:00 CST 5285
Sat Nov 24 01:00:00 CST 5285
Sun Nov 25 01:00:00 CST 5285
Mon Nov 26 01:00:00 CST 5285
Tue Nov 27 01:00:00 CST 5285

为什么小时数变为 1 而不是 0?当我更改日期时,它可能会改回0。

最佳答案

为什么你还在使用 outdated date/time API ?下面给出的示例不是您问题的答案,而是现代日期/时间 API 的示例。我建议您不要浪费时间尝试过时的 API 并开始使用 modern date/time API .

import java.time.LocalDateTime;

public class Main {
public static void main(String[] args) {
LocalDateTime a = LocalDateTime.now();
LocalDateTime b = LocalDateTime.now().plusHours(3);
while (a.getHour() != b.getHour()) {
System.out.println(a);
a = a.plusHours(1);
}
System.out.println(a);
}
}

输出:

2020-04-19T09:00:22.444642
2020-04-19T10:00:22.444642
2020-04-19T11:00:22.444642
2020-04-19T12:00:22.444642

关于java - 使用java的Calendar.add(5,1)并重复多次日期的小时就会出错!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61301116/

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