tl; др
java.time.OffsetDateTime.parse( "2019-02-21T09:47:58.699004+00:00" )
java.time
Какой класс DateTime
?Если вы используете Joda-Time, знайте, что проект Joda-Time сейчас находится в режиме обслуживания.Его создатель, Стивен Колборн, возглавил JSR 310 и внедрил классы java.time , встроенные в Java.
Нет необходимости форматировать шаблон
Ваша входная строкав стандартном формате ISO 8601 .Классы java.time по умолчанию используют форматы ISO 8601 при разборе / генерации строк.
String input = "2019-02-21T09:47:58.699004+00:00" ; // Standard ISO 8601 format.
OffsetDateTime
В вашей входной строке указано смещение от UTC , но не часовой пояс.Таким образом, соответствующий класс для представления этого значения: OffsetDateTime
.
OffsetDateTime odt = OffsetDateTime.parse( input ) ;
О java.time
java.time framework встроен в Java 8 и новее.Эти классы вытесняют проблемные старые устаревшие классы даты и времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Чтобы узнать больше, см. Oracle Tutorial .И поиск переполнения стека для многих примеров и объяснений.Спецификация: JSR 310 .
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на java.time классы.
Вы можете обмениваться java.time объектами напрямую с вашей базой данных.Используйте драйвер JDBC , совместимый с JDBC 4.2 или более поздней версии.Нет необходимости в строках, нет необходимости в java.sql.*
классах.
Где получить классы java.time?
ThreeTen-Extra Проект расширяет java.time дополнительными классами.Этот проект является полигоном для возможных будущих дополнений к java.time.Здесь вы можете найти некоторые полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more .