gpt4 book ai didi

java - Joda时间解析不同的日期时间格式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:36 28 4
gpt4 key购买 nike

我有下一个字符串:2000-01-01T01:01:012000-01-01T01:01:01.000Z是否可以使用 ISODateTimeFormat 来解析两个日期?

最佳答案

您可以使用 dateTimeParser() .它的描述 promise :

It accepts formats described by the following syntax: 
datetime = time | date-opt-time
time = 'T' time-element [offset]
date-opt-time = date-element ['T' [time-element] [offset]]
date-element = std-date-element | ord-date-element | week-date-element
std-date-element = yyyy ['-' MM ['-' dd]]
ord-date-element = yyyy ['-' DDD]
week-date-element = xxxx '-W' ww ['-' e]
time-element = HH [minute-element] | [fraction]
minute-element = ':' mm [second-element] | [fraction]
second-element = ':' ss [fraction]
fraction = ('.' | ',') digit+
offset = 'Z' | (('+' | '-') HH [':' mm [':' ss [('.' | ',') SSS]]])

测试:

    String s1 = "2000-01-01T01:01:01.000Z";
String s2 = "2000-01-01T01:01:01";

DateTime dt1 = ISODateTimeFormat.dateTimeParser().withOffsetParsed().parseDateTime(s1);
System.out.println(dt1); // 2000-01-01T01:01:01.000Z

DateTime dt2 = ISODateTimeFormat.dateTimeParser().withOffsetParsed().parseDateTime(s2);
System.out.println(dt2); // 2000-01-01T01:01:01.000+01:00 (using default zone)

当然,没有偏移量的字符串在某种程度上是可疑的。您决定如何解释结果。在哪个时区,因为您的文本输入的某些部分缺少此信息。

就个人而言,我希望 Joda-Time 提供一种可能性来优先考虑解析的偏移信息,但是选择用户定义的时区偏移以防文本输入没有偏移(Joda-Time 只允许设置一个用户- 通过 formatter.withZone(...) 定义区域,这将优先于文本输入中的任何可用偏移信息 - 不理想)。

关于java - Joda时间解析不同的日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28993412/

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