У Java 8 є ціла нова бібліотека для дат та часу в пакеті java.time, що дуже вітається для всіх, кому доводилося користуватися JodaTime раніше або клопотатись із створенням власних допоміжних методів обробки дат. Багато класів у цьому пакеті представляють часові позначки і мають допоміжні методи, як getHour()
отримати години від мітки часу, getMinute()
отримати хвилини від мітки часу, getNano()
отримати нанос від мітки часу тощо ...
Я помітив, що у них немає методу, який називається, getMillis()
щоб отримати мільйони часу. Замість цього потрібно було б викликати метод get(ChronoField.MILLI_OF_SECOND)
. Мені це здається непослідовністю в бібліотеці. Хтось знає, чому такий метод відсутній, або оскільки Java 8 ще в розробці, чи існує можливість, що він буде доданий пізніше?
https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
Класи, визначені тут, представляють основні поняття дати та часу, включаючи моменти, тривалість, дати, час, часові пояси та періоди. Вони ґрунтуються на системі календарів ISO, яка є фактично світовим календарем, що слідує пролептичним григоріанським правилам. Усі класи незмінні та безпечні для потоків.
Кожен екземпляр дати складається з полів, які зручно надаються API. Щоб отримати доступ до полів нижчого рівня, зверніться до
java.time.temporal
пакету. Кожен клас включає підтримку друку та розбору всіх видів дат і часу. Зверніться доjava.time.format
пакета для параметрів налаштування ...
Приклад такого класу:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
Дата-час без часового поясу в календарній системі ISO-8601, наприклад 2007-12-03T10: 15: 30.
LocalDateTime
є незмінним об'єктом дати та часу, який представляє дату-час, який часто розглядається як рік-місяць-день-година-хвилина-секунда. Також можна отримати доступ до інших полів дати та часу, таких як день року, день тижня та тиждень року. Час представлено до наносекундної точності. Наприклад, значення "2 жовтня 2007 року в 13: 45.30.123456789" може бути збережено уLocalDateTime
...
Instant
клас
get()
, а не давати їм індивідуальні унікальні назви. Якщо це вас турбує, напишіть клас, який успадковує початковий клас, і введіть свій власнийgetMillis()
метод у новий клас.