gpt4 book ai didi

Java 日期比较 : Dates in different formats

转载 作者:行者123 更新时间:2023-11-29 07:26:18 25 4
gpt4 key购买 nike

我有两个字符串格式的日期:比如 String date1 = 2018-08-29ISO-OFFSET_DATE_TIME 格式为 String date2 = 2018- 08-30T00:00:00+10:00。比较 date1 和 date2 是否相等的最佳方法是什么?我不关心时间,只关心日、年和月。我应该将它们转换为即时并进行比较吗?

最佳答案

tl;dr

LocalDate
.parse( "2018-08-29" )
.isEqual(
OffsetDateTime
.parse( "2018-08-30T00:00:00+10:00" )
.toLocalDate()
)

false

java.time

java.time 中的适当类型期间解析每个输入。

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

通过从 OffsetDateTime 中提取一个 LocalDate 进行比较。

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

false

或者您可能想要将 OffsetDateTime 从其比 UTC 提前 10 小时的偏移量调整为另一个偏移量或时区。例如,让我们在提取日期进行比较之前调整回 UTC。

LocalDate
.parse( "2018-08-29" )
.isEqual(
OffsetDateTime
.parse( "2018-08-30T00:00:00+10:00" )
.withOffsetSameInstant( ZoneOffset.UTC )
.toLocalDate()
)

这会将我们的结果从上面代码中看到的 false 更改为 true

true

关于Java 日期比较 : Dates in different formats,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52087707/

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