亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 日期比較:不同格式的日期

Java 日期比較:不同格式的日期

RISEBY 2021-08-19 21:15:08
我有兩個字符串格式的日期: sayString date1 = 2018-08-29和ISO-OFFSET_DATE_TIME格式為String date2 = 2018-08-30T00:00:00+10:00。比較 date1 和 date2 是否相等的最佳方法是什么?我不關心時間,只關心日、年和月。我應該將它們轉換為即時和比較嗎?
查看完整描述

3 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

LocalDate

.parse( "2018-08-29" ) 

.isEqual(

    OffsetDateTime

    .parse( "2018-08-30T00:00:00+10:00" )

    .toLocalDate()

)

錯誤的


時間

在java.time 中解析每個輸入的適當類型。


LocalDate ld = LocalDate.parse( "2018-08-29" ) ;

OffsetDateTime odt = OffsetDateTime.parse( "2018-08-30T00:00:00+10:00" ) ;

通過LocalDate從 中提取 a 進行比較OffsetDateTime。


Boolean sameDate = ld.isEqual( odt.toLocalDate() ) ;

錯誤的


或者,您可能想將其OffsetDateTime從 UTC 前十小時的偏移調整為另一個偏移或時區。例如,在提取要比較的日期之前,讓我們調整回 UTC。


LocalDate

.parse( "2018-08-29" ) 

.isEqual(

    OffsetDateTime

    .parse( "2018-08-30T00:00:00+10:00" )

    .withOffsetSameInstant( ZoneOffset.UTC )

    .toLocalDate()

)

這會將我們的結果從false上面代碼中看到的更改為true。


真的


查看完整回答
反對 回復 2021-08-19
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

最快的方法是;


String date1 = "2018-08-29";

String date2 = "2018-08-30T00:00:00+10:00";

boolean isEqual = date2.startsWith(date1);


查看完整回答
反對 回復 2021-08-19
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

如果這是您唯一想知道的關于這兩個字符串的信息:


    LocalDate ld1 = LocalDate.parse(date1);

    LocalDate ld2 = LocalDate.parse(date2, DateTimeFormatter.ISO_OFFSET_DATE_TIME);

    if (ld1.isEqual(ld2)) {

        System.out.println("They are the same date");

    } else {

        System.out.println("They are different dates");

    }

使用您的字符串示例從問題中輸出:


他們是不同的日期


當他的回答出現時,我正在編寫類似于Basil Bourque 的代碼。我更喜歡通過正確的日期時間對象來處理日期和時間,這正是他正在做的。通過解析date2為 ,OffsetDateTime您可以保留所有信息,并且LocalDate可以輕松轉換為進行比較。對于大多數目的,我推薦這種方式。


只有當你確定你永遠不需要一天中的時間時,你才能走捷徑。你當然可以用王俊杰的快捷方式。不過,我更喜歡上面自己的代碼,原因有兩個:我清楚地告訴讀者這些字符串是日期和時間,并正確處理它們。因此它還提供了字符串格式的驗證。如果某天不小心得到了一個完全不同的字符串,您將通過DateTimeParseException.


查看完整回答
反對 回復 2021-08-19
  • 3 回答
  • 0 關注
  • 321 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號