如何解析 DateTime 和日期之间的时间?
我想解析一个日期时间变体,该变体具有日期之间的时间。为什么以下不起作用?
DateTimeFormatter.ofPattern("E L d HH:mm:ss yyyy").parse("Tue Mar 1 01:29:47 2022")
结果:
java.time.format.DateTimeParseException:无法在索引 4 处解析文本“Tue Mar 1 01:29:47 2022”
I want to parse a date-time variant that has the time in between the dates. Why is the following not working?
DateTimeFormatter.ofPattern("E L d HH:mm:ss yyyy").parse("Tue Mar 1 01:29:47 2022")
Result:
java.time.format.DateTimeParseException: Text 'Tue Mar 1 01:29:47 2022' could not be parsed at index 4
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您必须确保
Locale
,DateTimeFormatter
的模式中使用正确的字符,一年中的一个月是使用模式中的字符
M
进行解析,并且您必须确保使用正确的语言并且M
的数量满足要求(例如EEEE 将解析一周中的一整天,例如
“星期一”
)。通过将Locale
传递给DateTimeFormatter
可以确保这一点。具有单个d
的模式将解析月份中没有前导零的天数,而dd
则需要前导零到月份中的个位数天数。下面是一个解析两个日期时间的示例,其中一个包含一位数的月份日期,另一个
如果在
main
中执行此示例代码,您将获得以下输出:I think you have to make sure that
Locale
for abbreviated months and days of weekDateTimeFormatter
A month of year is parsed using the character
M
in a pattern and you have to make sure the correct language is used and the amount ofM
s meets the requirements (e.g.EEEE
will parse a full day of week, like"Monday"
). That's ensurable by passing aLocale
to theDateTimeFormatter
. A pattern with a singled
will parse days of month without leading zeros, whiledd
would require leading zeros to single-digit days of month.Here's an example parsing two datetimes, one with a single-digit day of month and one
If you execute this sample code in a
main
, you'll get the following output: