gpt4 book ai didi

Java 使用 SimpleDateFormat 解析日期和时间

转载 作者:行者123 更新时间:2023-11-30 06:09:19 24 4
gpt4 key购买 nike

我有这个输入:

Thu May 31 01:43:45 GMT-8 2018

这些是我尝试过的最新模式:

"EEE MMM dd HH:mm:ss zX yyyy"
"EEE MMM dd HH:mm:ss 'GMT'X yyyy"
"EEE MMM dd HH:mm:ss zX yyyy"

当我尝试使用模式解析输入时,抛出了无法解析的日期异常。我尝试了几种模式,但无法弄清楚如何匹配输入的 GMT 偏移部分。我可以使用正则表达式来做到这一点 - 我真的不需要偏移量,但宁愿弄清楚要使用什么模式。当然,如果距 GMT 超过 9 小时,则偏移量也可以是 2 位数的偏移量。

我查看了 SimpleDateformat 文档以及此处和其他地方的几个示例,但无法找出我需要的正确模式。

最佳答案

使用 Java8 中的 LocalDateTime API(比 Date 更新且更易于使用),您可以使用 ZonedDateTime 版本::

  • 为了匹配日期,仅使用一个E
  • 要匹配 GMT-8,请使用 0(下面链接中的第五个 block ,第三行字母)
  • 我添加 Locale.ENGLISH 因为我使用的是法语配置,不确定您是否需要将其添加到英语配置

★ DateTimeFormatter Documentation

String str = "Thu May 31 01:43:45 GMT-8 2018";

DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("E MMM dd HH:mm:ss O yyyy", Locale.ENGLISH);

ZonedDateTime date = ZonedDateTime.parse(str, formatter);
System.out.println(date.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
// 2018-05-31T01:43:45-08:00

★ Working example

关于Java 使用 SimpleDateFormat 解析日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50611588/

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