java - 将带有偏移字符串的日期时间解析为 LocalDateTime

标签 java json date java-time

我正在尝试将以下日期时间字符串解析为 LocalDateTimeObject,但是我无法识别日期时间字符串的格式。

2021 年 10 月 9 日星期六 02:10:23 -0400

    String s = "Sat, 09 Oct 2021 02:10:23 -0400";
    DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
    LocalDateTime dateTime = LocalDateTime.parse(s, formatter);
    System.out.println(dateTime);

如何确定上述字符串的模式?

最佳答案

您应该首先检查日期字符串是否与 Predefined Formatters 中的任何一个匹配.

如果没有,那么你必须自己制作Formatter使用 .ofPattern(String pattern).ofPattern(String pattern, Locale locale) .为此,您可以看到所有已定义的模式字母 here格式化和解析模式部分。

对于您的示例,您可以使用 DateTimeFormatter.RFC_1123_DATE_TIME :

DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME;
OffsetDateTime dateTime = OffsetDateTime.parse(s, formatted);

或:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss Z");
OffsetDateTime dateTime = OffsetDateTime.parse(s, formatted);

请注意 OffsetDateTime用于表示与 UTC 有偏差的日期时间。


 Symbol  Meaning       
 ------  -------        
   E     day-of-week 
   d     day-of-month
   M     month-of-year
   y     year-of-era
   H     hour-of-day (0-23)
   m     minute-of-hour
   s     second-of-minute
   Z     zone-offset

关于java - 将带有偏移字符串的日期时间解析为 LocalDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69505018/

相关文章:

java - 如何使用 ()、[]、{} 检查器修复此输出问题?

php - 如何使用相同的 CakePhp 设置开发网站和 API

c - 在文件中添加日期 - C

javascript - 将对象的属性作为日期对象返回时出现问题

php - 删除从数据库收到的重复列表项

java的setColor导致非法参数异常或断言被跳过

java - OWASP java-html-sanitizer - 未封闭标签的策略

java - 无法捕获从 socket.connect(InetAddress, timeout) 抛出的 SocketTimeoutException

java - 使用 Jackson ObjectIdGenerator 将 Json 转换为集合时出现问题

json - Jackson with JAXB - 抽象类型实例化