gpt4 book ai didi

java - 如何在不使用模式的情况下在 DateTimeFormatterBuilder 中指定区域偏移量?

转载 作者:行者123 更新时间:2023-11-29 04:12:29 24 4
gpt4 key购买 nike

我正在尝试将以下时间戳解析为 ZonedDateTime:

Sun Jan 20 16:08:59 +0000 2019

我喜欢尽可能避免使用在字符串中定义的模式,因为我经常忘记字符代表什么(“哈,'M' 是一年中的月份,还是小时中的分钟......?”)

在下面的例子中,我怎样才能去掉代表区域偏移的模式“xxxx”?我试过 appendOffsetId但它使用不同的模式,因此解析失败。

有没有更好的办法?

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
.appendLiteral(' ')
.appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT)
.appendLiteral(' ')
.appendValue(ChronoField.DAY_OF_MONTH, 1, 2, SignStyle.NEVER)
.appendLiteral(' ')
.appendValue(ChronoField.HOUR_OF_DAY, 2)
.appendLiteral(':')
.appendValue(ChronoField.MINUTE_OF_HOUR, 2)
.appendLiteral(':')
.appendValue(ChronoField.SECOND_OF_MINUTE, 2)
.appendLiteral(' ')
.appendPattern("xxxx") // How do I change this?
.appendLiteral(' ')
.appendValue(ChronoField.YEAR, 4)
.toFormatter();

System.out.println(
ZonedDateTime.parse("Sun Jan 20 16:08:59 +0000 2019", formatter)
);

最佳答案

您可以使用 appendOffset而不是 appendOffsetId。第一个参数是一个模式,但不是 DateTimeFormatter 模式;事实上,它被限制为 22 个可能的字符串值:

.appendOffset("+HHMM", "????")

关于java - 如何在不使用模式的情况下在 DateTimeFormatterBuilder 中指定区域偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54257873/

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