Проект Joda время находится в режиме технического обслуживания, с командой советуя миграции на Java. временные классы.
DateTimeFormatter
К сожалению, это «основной» (минимальные сепараторы) версия стандартного формата ISO 8601 не предопределены в java.time от Java 8. Использование DateTimeFormatter
класса, чтобы указать шаблон соответствия.
String input = "20130510T202132Z";
DateTimeFormatter f = DateTimeFormatter.ofPattern ("uuuuMMdd'T'HHmmssX");
Кстати, вариант с разделителями, например, как 2013-05-10T20:21:32Z
известно как extended version of ISO 8601.
OffsetDateTime
Анализировать как OffsetDateTime
объекта. Этот класс представляет момент на шкале времени, скорректированной до определенного offset-from-UTC, и разрешающей наносекунды. В этом случае смещение составляет UTC.
OffsetDateTime odt = OffsetDateTime.parse (input , f);
odt.toString(): 2013-05-10T20:21:32Z
О java.time
java.time каркас встроен в Java 8 и более поздних. Эти классы вытесняют неприятные старые классы legacy, такие как java.util.Date
, .Calendar
, & java.text.SimpleDateFormat
.
Проект Joda-Time, теперь в maintenance mode, советует перейти на java.time.
Чтобы узнать больше, см. Oracle Tutorial. И поиск Stack Overflow для многих примеров и объяснений. Спецификация: JSR 310.
Где получить классы java.time?
- Java SE 8 и SE 9, а затем
- Встроенный.
- Часть стандартного Java API с объединенной реализацией.
- Java 9 добавляет некоторые незначительные функции и исправления.
- Java SE 6 и SE 7
- Большая часть функциональности java.time будет обратно портирован на Java 6 & 7 в ThreeTen-Backport.
- Android
- Проект ThreeTenABP адаптирует ThreeTen-Backport (как упоминалось выше) для Android специально.
- См. How to use….
Проект ThreeTen-Extra расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more.
В будущем, если вы пробовали вещи, вам стоит показать, что вы пробовали, и объяснить, как это не сработало для вас. –
FYI, этот формат с минимальным использованием разделителей известен как [«базовая» версия стандартных форматов ISO 8601] (https://en.wikipedia.org/wiki/ISO_8601#General_principles). В расширенном формате используются разделители, такие как '2013-05-10T20: 21: 32Z'. –