首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ISO_OFFSET_DATE_TIME的Java日期时间格式模式

ISO_OFFSET_DATE_TIME的Java日期时间格式模式
EN

Stack Overflow用户
提问于 2020-10-21 15:12:17
回答 3查看 609关注 0票数 1

我正在寻找ISO_OFFSET_DATE_TIME的日期时间格式模式

代码语言:javascript
运行
复制
2019-09-30T10:05:16+10:00

yyyy-MM-dd'T'HH:mm:ssZ2019-09-30T10:05:16+1000有效,但我需要在区域偏移量中使用冒号

如果这是不可能的,我需要一个正则表达式。

EN

回答 3

Stack Overflow用户

发布于 2020-10-21 15:30:27

这里需要uuuu-MM-dd'T'HH:mm:ssXXX

代码语言:javascript
运行
复制
String str = "2019-09-30T10:05:16+10:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssXXX");
OffsetDateTime datetime = OffsetDateTime.parse(str, formatter);
System.out.println(datetime);
票数 3
EN

Stack Overflow用户

发布于 2020-10-22 04:05:11

那得看情况。DateTimeFormatter.ISO_OFFSET_DATE_TIME打印和解析字符串,有和没有秒,有和没有小数秒,后者最多9个小数。

如果你只需要你的问题中给出的格式变体的模式,只需要几秒钟而不是几分一秒,MC帝王的答案就是你所需要的。

如果您需要ISO_OFFSET_DATE_TIME的全部灵活性,那么没有模式可以满足您的需求。然后,您需要使用正则表达式的方式。反过来,它很难提供像格式化程序那样严格的验证。而且正则表达式可能会变得非常复杂和难以阅读。

链接: My answer to a similar question,提供更多详细信息。

票数 0
EN

Stack Overflow用户

发布于 2020-10-22 05:28:17

您可以使用yyyy-MM-dd'T'HH:mm:ssZZZZZuuuu-MM-dd'T'HH:mm:ssXXX

演示:

代码语言:javascript
运行
复制
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        String strDateTime = "2019-09-30T10:05:16+10:00";
        OffsetDateTime odt = OffsetDateTime.parse(strDateTime);
        // Default format i.e. OffsetDateTime#toString
        System.out.println(odt);

        // Custom format
        System.out.println(odt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZZZZZ")));
        System.out.println(odt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX")));
    }
}

输出:

代码语言:javascript
运行
复制
2019-09-30T10:05:16+10:00
2019-09-30T10:05:16+10:00
2019-09-30T10:05:16+10:00
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64458388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档