tl; dr
Некоторые другие ответы верны в рекомендациях java.time классов, но используйте ненужные длины для ваших конкретных потребностей.
Instant.now() // Capture the current moment in UTC with a resolution as fines nanoseconds but usually in microseconds or milliseconds.
.truncatedTo( ChronoUnit.MINUTES ) // Lop off any seconds or fractional second, to get a value in whole minutes.
.toString() // Generate a String in standard ISO 8601 format where a `T` separates the year-month-day from the hour-minute-second, and the `Z` on the end for “Zulu” means UTC.
2018-01-23T12: 34Z
Instant::toString
Класс jav.time.Instant
представляет момент в UTC, всегда в UTC.
Instant instant = Instant.now() ;
instant.toString (): 2018-01-23T12: 34: 56.123456Z
Z
в конце строки вашего примера 2010-10-12T08:50Z
произносится как «зулу» и означает UTC .
Ваш нужный формат соответствует стандарту ISO 8601 .Классы java.time по умолчанию используют эти стандартные форматы при разборе / генерации строк.Поэтому нет необходимости указывать шаблон форматирования.Просто позвоните по номеру Instant::toString
, как показано выше.
Если вы хотите целые минуты без секунд или доли секунды, то обрежьте.Укажите единицу времени через ChronoUnit
класс.
Instant instant = Instant.now().truncatedTo( ChronoUnit.MINUTES ) ;
String output = instant.toString(); // Generate a `String` object in standard ISO 8601 format.
О java.time
java.time Framework встроен в Java 8 и более поздние версии.Эти классы заменяют проблемные старые устаревшие классы даты и времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial .И поиск переполнения стека для многих примеров и объяснений.Спецификация: JSR 310 .
. Вы можете обмениваться java.time объектами напрямую с вашей базой данных.Используйте драйвер JDBC , совместимый с JDBC 4.2 или более поздней версии.Нет необходимости в строках, нет необходимости в java.sql.*
классах.
Где получить классы java.time?
- Java SE 8 , Java SE 9 , Java SE 10, а позже
- Встроенный.
- Часть стандартного Java API с встроенной реализацией.
- Java 9 добавляет некоторые незначительные функции и исправления.
- Java SE 6 и Java SE 7
- Android
- Более поздние версии реализации связки Android классов java.time.
- Для более ранних версий Android (<26) адаптируется проект <a href="https://github.com/JakeWharton/ThreeTenABP" rel="nofollow noreferrer"> ThreeTenABP ThreeTen-Backport (упомянуто выше).См. Как использовать ThreeTenABP… .
ThreeTen-Extra Проект расширяет java.time дополнительными классами.Этот проект является полигоном для возможных будущих дополнений к java.time.Здесь вы можете найти несколько полезных классов, таких как Interval
, YearWeek
, YearQuarter
и more .