gpt4 book ai didi

java - 计算java中两个日期之间的天数和时区

转载 作者:行者123 更新时间:2023-12-02 13:33:07 25 4
gpt4 key购买 nike

根据this question ,我计算了java中两个日期之间的天数。程序如下

SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
String inputString1 = "23 01 1997";
String inputString2 = "27 04 1997";

try {
Date date1 = myFormat.parse(inputString1);
Date date2 = myFormat.parse(inputString2);
long diff = date2.getTime() - date1.getTime();
System.out.println ("Days: " + TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS));
} catch (ParseException e) {
e.printStackTrace();
}

但是当日期处于夏令时时区时,我遇到了问题。就像 EDT 到 EST 一样。例如,当我们计算(2017年3月1日)到(2017年3月30日)之间的天数时,实际计数应该是29,但上述程序的结果是28。

最佳答案

您可以使用 LocalDate 来实现:

System.out.println(
Period.between(
LocalDate.parse("2017-03-01"),
LocalDate.parse("2017-03-30")
).getDays()
); // 29

或使用dd M yyyy格式:

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd M yyyy");
LocalDate localDate = LocalDate.parse("01 03 2017",dateTimeFormatter);
LocalDate localDate1 = LocalDate.parse("30 03 2017",dateTimeFormatter);
System.out.println(Period.between(localDate,localDate1).getDays());

关于java - 计算java中两个日期之间的天数和时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43115308/

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