gpt4 book ai didi

java - 如何解析带有可选部分的日期时间?

转载 作者:行者123 更新时间:2023-12-01 08:52:18 25 4
gpt4 key购买 nike

我的日期时间可能是以下格式之一:

  • 月/日/年
  • 月/日/年
  • 月/日/年
  • 月/日/年
  • 以上任何带有 HH:mm 的内容
  • 以上任何带有 4 位数年份的内容

我构建的DateTimeFormatter如下:

new DateTimeFormatterBuilder()
.appendValue(ChronoField.MONTH_OF_YEAR, 1, 2, SignStyle.NEVER)
.appendLiteral('/')
.appendValue(ChronoField.DAY_OF_MONTH, 1, 2, SignStyle.NEVER)
.appendLiteral('/')
.appendValue(ChronoField.YEAR_OF_ERA, 2, 4, SignStyle.NEVER)
.optionalStart()
.appendLiteral(' ')
.appendValue(HOUR_OF_DAY, 2)
.appendLiteral(':')
.appendValue(MINUTE_OF_HOUR, 2)
.toFormatter();

但无法格式化2/9/17。为什么?

最佳答案

这有效:

new DateTimeFormatterBuilder()
.appendValue(ChronoField.MONTH_OF_YEAR, 1, 2, SignStyle.NEVER)
.appendLiteral('/')
.appendValue(ChronoField.DAY_OF_MONTH, 1, 2, SignStyle.NEVER)
.appendLiteral('/')
.appendValueReduced(ChronoField.YEAR, 2, 4, yearMonth.getYear())
.appendPattern("[ HH:mm]")
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
.toFormatter();

我在回复 Meno Hochschild 的评论时发布的错误已通过设置可选小时和分钟的默认值来修复。

关于java - 如何解析带有可选部分的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42310409/

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