字符串到OffsetDateTime在java中解析

use*_*325 0 java datetime date java-time

我正在尝试解析日期字符串,OffsetDateTime如下所示.

但我得到以下异常,

线程"main"中的异常java.time.format.DateTimeParseException:无法在索引0处解析文本'Mon Jun 18 00:00:00 IST 2012'

public class ParseExample {
    public static void main(String... args) throws ParseException {
        String dateStr = "Mon Jun 18 00:00:00 IST 2012";
        System.out.println(OffsetDateTime.parse(dateStr));
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个错误.

谢谢.

孙兴斌*_*孙兴斌 7

ZonedDateTime

2012年1月18日00:00:00 IST应该是a ZonedDateTime,您可以使用自定义解析它DateTimeFormatter,然后将其转换为OffsetDateTime:

DateTimeFormatter format = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);

OffsetDateTime offsetDateTime = ZonedDateTime.parse(dateStr, format).toOffsetDateTime();
Run Code Online (Sandbox Code Playgroud)