gpt4 book ai didi

java - 比较两个 java.util.Dates 看它们是否在同一天

转载 作者:bug小助手 更新时间:2023-10-28 10:41:31 24 4
gpt4 key购买 nike

我需要比较两个 Date(例如 date1date2)并得出一个 boolean sameDay 这两个 Date 共享同一天为 true,否则为 false。

我该怎么做?这里似乎有一股困惑的旋风......如果可能的话,我想避免引入 JDK 之外的其他依赖项。

澄清一下:如果 date1date2 共享相同的年月日,那么 sameDay为真,否则为假。我意识到这需要了解时区...传入时区会很好,但只要我知道行为是什么,我就可以使用 GMT 或本地时间。

再次澄清:

date1 = 2008 Jun 03 12:56:03
date2 = 2008 Jun 03 12:59:44
=> sameDate = true

date1 = 2009 Jun 03 12:56:03
date2 = 2008 Jun 03 12:59:44
=> sameDate = false

date1 = 2008 Aug 03 12:00:00
date2 = 2008 Jun 03 12:00:00
=> sameDate = false

最佳答案

Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
boolean sameDay = cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR) &&
cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR);

请注意,当涉及不同时区时,“同一天”并不像听起来那么简单。上面的代码将为两个日期计算相对于运行它的计算机使用的时区的日期。如果这不是您所需要的,您必须在确定“同一天”的确切含义后,将相关时区传递给 Calendar.getInstance() 调用。

是的,Joda Time 的 LocalDate 将使整个事情变得更加简洁和容易(尽管会出现涉及时区的同样困难)。

关于java - 比较两个 java.util.Dates 看它们是否在同一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2517709/

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