gpt4 book ai didi

java - 解析带有可变空格的日期

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:12 24 4
gpt4 key购买 nike

我使用 Joda 来解析日期,并采用不使用前导零的格式,例如:

 Mon Nov 20 14:40:36 2006
Mon Nov 6 14:40:36 2006

请注意,dayOfMonth 字段左侧填充有空格。

目前我似乎必须使用两种不同的格式,如果其中一种失败则重新解析

"EEE MMM dd HH:mm:ss yyyy"
"EEE MMM d HH:mm:ss yyyy"

是否有单一格式(或 API 开关)可以处理这两种情况? (SimpleDateFormat 的答案是否相同 - 我不使用它?)

最佳答案

java.time 和格式模式字母 p

这是现代的答案,使用 java.time,Joda-Time 的后继者。

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM ppd HH:mm:ss uuuu", Locale.ENGLISH);

String[] stringsToParse = {
"Mon Nov 20 14:40:36 2006",
"Mon Nov 6 14:40:36 2006"
};
for (String dateTimeString : stringsToParse) {
LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter);
System.out.println(dateTime);
}

输出:

2006-11-20T14:40:36
2006-11-06T14:40:36

对于DateTimeFormatter.ofPattern格式字母p表示在左侧填充空格。 pp 表示填充到两个位置。它既可用于格式化,也可用于解析(如此处)。

我知道你问过 Joda-Time。 Joda-Time 主页显示:

Note that Joda-Time is considered to be a largely “finished” project. No major enhancements are planned. If using Java SE 8, please migrate to java.time (JSR-310).

链接

关于java - 解析带有可变空格的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52540390/

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