Staram parse ZonedDateTime
s od Strings
w następującym formacie:Wzór "YYYY-MM-DD HH: mm: ss Z" powoduje parsowania wyjątek gdzie Jodatime nie
2017-08-10 16:48:37 -0500
ja wcześniej wykonanej z powodzeniem korzystającym z Jodobime'a DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss Z")
.
Próbuję zastąpić Jarestime interfejsem Java Time API i ten sam wzorzec już nie działa.
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss Z");
ZonedDateTime.parse("2017-08-10 16:48:37 -0500", dtf);
skutkuje następującym wyjątkiem:
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
Jaki jest właściwy wzór do wykorzystania w ciągu formatu w Java API czasu?
Ciekawe, co dokładnie jest różnica między 'year' (yyyy) i' lat-of-era' (uuuu)? –
Sam nie potrafię tego dobrze wytłumaczyć. Ale zwróć uwagę, że: * u rok * y rok-z-ery * Rok bazujący na Y https://docs.oracle.com/javase/8/docs/api/java/time/format/ DateTimeFormatter.html –
** y ** = rok, ** Y ** = rok w roku. Jeśli używa się ** numeru tygodnia ** (1-53), pierwsze pół tygodnia tego roku 2017 może wynosić 52, podczas gdy jego ** tygodniowy rok ** byłby poprzedni rok 2016. –