gpt4 book ai didi

java - 用可变空间解析日期

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:38 25 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/5879546/

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