tôi đang cố gắng phân tích cú pháp ZonedDateTime
s từ Strings
theo định dạng sau:Pattern "YYYY-MM-dd HH: mm: ss Z" gây phân tích ngoại lệ nơi Jodatime không
2017-08-10 16:48:37 -0500
tôi đã làm trước đây rất thành công khi sử dụng số DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss Z")
của Jodatime.
Tôi đang cố gắng thay thế Jodatime bằng API thời gian Java và cùng một mẫu không còn hoạt động nữa.
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss Z");
ZonedDateTime.parse("2017-08-10 16:48:37 -0500", dtf);
kết quả trong ngoại lệ sau đây:
java.time.format.DateTimeParseException: Text '2017-08-10 16:48:37 -0500' could not be parsed: Unable to obtain ZonedDateTime from TemporalAccessor: {DayOfMonth=10, OffsetSeconds=-18000, WeekBasedYear[WeekFields[SUNDAY,1]]=2017, MonthOfYear=8},ISO resolved to 16:48:37 of type java.time.format.Parsed
mô hình thích hợp để sử dụng cho các chuỗi định dạng trong API Java Thời gian là gì?
Thú vị, những gì chính xác là sự khác biệt giữa 'year' (YYYY) và' năm-of-era' (uuuu)? –
Tôi không thể giải thích tốt cho bản thân mình. Nhưng hãy chú ý rằng: * u năm * y năm-of-kỷ nguyên * Y theo tuần dựa trên năm https://docs.oracle.com/javase/8/docs/api/java/time/format/ DateTimeFormatter.html –
** y ** = năm, ** Y ** = năm trong tuần. Nếu người dùng sử dụng số ** tuần ** (1-53) nửa tuần đầu tiên của năm 2017 có thể là 52 trong khi năm ** ** của nó sẽ là năm trước 2016. –