我需要比較兩個Dates(例如date1和date2),并得出在同一天boolean sameDay兩個Dates相同的a,如果不是,則返回false。我怎樣才能做到這一點(diǎn)?這里似乎有混亂的旋風(fēng)……而且我想盡可能避免引入除JDK之外的其他依賴項(xiàng)。需要說明的是:如果date1并且date2共享相同的年,月和日,sameDay則為true,否則為false。我意識到這需要了解時區(qū)...傳入時區(qū)會很好,但是只要知道行為是什么,我就可以使用GMT或本地時間。再次澄清:date1 = 2008 Jun 03 12:56:03date2 = 2008 Jun 03 12:59:44 => sameDate = truedate1 = 2009 Jun 03 12:56:03date2 = 2008 Jun 03 12:59:44 => sameDate = falsedate1 = 2008 Aug 03 12:00:00date2 = 2008 Jun 03 12:00:00 => sameDate = false
3 回答

千巷貓影
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個贊
您可以通過計(jì)算每個日期的儒略日編號,然后進(jìn)行比較來避免使用日歷的外部依賴性和性能損失。
public static boolean isSameDay(Date date1, Date date2) {
// Strip out the time part of each date.
long julianDayNumber1 = date1.getTime() / MILLIS_PER_DAY;
long julianDayNumber2 = date2.getTime() / MILLIS_PER_DAY;
// If they now are equal then it is the same day.
return julianDayNumber1 == julianDayNumber2;
}
添加回答
舉報
0/150
提交
取消