try {
SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-DD'T'HH:mm:ss+hh:mm");
Date dateTime = format .parse("2020-11-22T05:57:10+01:00");
System.out.println(dateTime);
} catch (ParseException e) {
e.printStackTrace();
}
Выше указано Sun Dec 29 05:00:10 IST 2019
, часть 57
минут потеряна. Указанную выше дату я получаю из ответа JSON с TimeZone Europe/Berlin
. В настоящее время я не включаю TimeZone. Как правильно обращаться к этой строке при преобразовании в объект Java Date?
Правильно ли приведенное выше преобразование? Если нет, то как преобразовать эти данные?
yyyy-MM-dd'T'HH:mm:ssZ
обратите внимание, что формат чувствителен к региструDD
не то же самое, чтоdd
- person Lino   schedule 29.01.2021java.util.Date
-class и к тем, которые предоставлены вjava.time
-package, представленном в Java 8. Эти новые классы намного проще в использовании и имеют много преимуществ по сравнению со своими старыми аналогами. - person Lino   schedule 29.01.2021Z
в конце должен бытьX
:yyyy-MM-dd'T'HH:mm:ssX
- person Lino   schedule 29.01.2021SimpleDateFormat
иDate
. Эти классы плохо спроектированы и давно устарели, а первые, как известно, доставляют много хлопот. Вместо этого просто используйтеOffsetDateTime
из java.time, современного API даты и времени Java. - person Ole V.V.   schedule 30.01.2021withOffsetParsed
дляDateTimeFormattter
указывает Joda-Time вместо этого использовать смещение от строки. Но если возможно, вам, вероятно, следует предпочесть java.time вместо Joda-Time. - person Ole V.V.   schedule 01.02.2021