- Преобразование даты в локальную дату или локальное время и обратно
- 1. Обзор
- Дальнейшее чтение:
- Переход на новый API даты и времени Java 8
- Введение в API даты и времени Java 8
- 2. Преобразование java.util.Дата на java.время.LocalDate
- 3. Преобразование java.util.Дата на java.время.LocalDateTime
- 4. Преобразуйте java.time.LocalDate в java.util.Date
- 5. Конвертируйте java.time.LocalDateTime в java.util.Date
- 6. Дополнения Java 9
- 7. Заключение
- Читайте ещё по теме:
- Перевод «up-to-date version of Java installed» на русский
Преобразование даты в локальную дату или локальное время и обратно
Узнайте о возможных способах преобразования между старыми java.util.Классы даты и новый API java.time.
1. Обзор
Начиная с Java 8, у нас есть новый API даты: java.time .
Однако иногда нам все еще нужно выполнять преобразования между новым и старым API и работать с представлениями данных из обоих.
Дальнейшее чтение:
Переход на новый API даты и времени Java 8
Введение в API даты и времени Java 8
2. Преобразование java.util.Дата на java.время.LocalDate
Давайте начнем с преобразования старого представления данных в новое.
Здесь мы можем воспользоваться новым методом |/to Instant () , который был добавлен в java.util.Дата в Java 8.
Когда мы преобразуем объект Instant |/, необходимо использовать ZoneId , потому что Instant объекты не зависят от часового пояса — просто точки на временной шкале.
atZone(ZoneId zone) API из Instant объекта возвращает ZonedDateTime , поэтому нам просто нужно извлечь Локальные данные из него с помощью метода toLocalDate () .
Во-первых, мы используем систему по умолчанию ZoneId :
public LocalDate convertToLocalDateViaInstant(Date dateToConvert)
И аналогичное решение, но с другим способом создания Instant объекта — с использованием метода ofEpochMilli() :
public LocalDate convertToLocalDateViaMilisecond(Date dateToConvert)
Прежде чем мы продолжим, давайте также быстро рассмотрим класс old java.sql.Date и то, как его можно преобразовать в Локальные данные .
Начиная с Java 8, мы можем найти дополнительный метод toLocalDate() в java.sql.Date , который также дает нам простой способ преобразования его в java.time.LocalDate .
В этом случае нам не нужно беспокоиться о часовом поясе:
public LocalDate convertToLocalDateViaSqlDate(Date dateToConvert)
Точно так же мы можем преобразовать старый объект Date в объект LocalDateTime . Давайте посмотрим на это дальше.
3. Преобразование java.util.Дата на java.время.LocalDateTime
Чтобы получить экземпляр LocalDateTime , мы можем аналогичным образом использовать посредника ZonedDateTime , а затем использовать toLocalDateTime() API.
Как и раньше, мы можем использовать два возможных решения для получения Instant объекта из java.util.Дата :
public LocalDateTime convertToLocalDateTimeViaInstant(Date dateToConvert) < return dateToConvert.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); >public LocalDateTime convertToLocalDateTimeViaMilisecond(Date dateToConvert)
И, начиная с Java 8, мы также можем использовать java.sql.Timestamp для получения LocalDateTime :
ocalDateTime convertToLocalDateTimeViaSqlTimestamp(Date dateToConvert)
4. Преобразуйте java.time.LocalDate в java.util.Date
Теперь, когда у нас есть хорошее понимание того, как преобразовать старое представление данных в новое, давайте посмотрим на преобразование в другом направлении.
Мы обсудим два возможных способа преобразования Локальной даты в Дату .
В первом случае мы используем новый метод valueOf(LocalDate date) , предоставленный в | java.sql.Date object, который принимает Локальные данные в качестве параметра:
public Date convertToDateViaSqlDate(LocalDate dateToConvert)
Как мы видим, это легко и интуитивно. Он использует местный часовой пояс для преобразования (все делается под капотом, так что не нужно беспокоиться).
В другом примере Java 8 мы используем объект Instant , который мы передаем в from(Instant instant) | метод | java.util.Дата объект:
public Date convertToDateViaInstant(LocalDate dateToConvert)
Обратите внимание, что мы используем здесь объект Instant и что нам также нужно заботиться о часовых поясах при выполнении этого преобразования.
Далее, давайте используем очень похожее решение для преобразования LocalDateTime в Date объект.
5. Конвертируйте java.time.LocalDateTime в java.util.Date
Самый простой способ получить a java.util.Дата из LocalDateTime должна использовать расширение для |/java.sql.Timestamp — доступно с Java 8:
public Date convertToDateViaSqlTimestamp(LocalDateTime dateToConvert)
Но, конечно, альтернативным решением является использование объекта an Instant , который мы получаем из ZonedDateTime :
Date convertToDateViaInstant(LocalDateTime dateToConvert)
6. Дополнения Java 9
В Java 9 доступны новые методы, упрощающие преобразование между java.util.Дата и java.time.LocalDate или java.time.LocalDateTime .
LocalDate.of Instant(Мгновенный момент, зона ZoneId) и LocalDateTime.ofInstant(Мгновенный момент, зона ZoneId) предоставляют удобные ярлыки:
public LocalDate convertToLocalDate(Date dateToConvert) < return LocalDate.ofInstant( dateToConvert.toInstant(), ZoneId.systemDefault()); >public LocalDateTime convertToLocalDateTime(Date dateToConvert)
7. Заключение
В этой статье мы рассмотрели возможные способы преобразования старого java.util.Дата в новый java.time.LocalDate и java.time.LocalDateTime , а также наоборот.
Полная реализация этой статьи доступна на GitHub .
Читайте ещё по теме:
Перевод «up-to-date version of Java installed» на русский
Перевод занимает больше времени, чем обычно. Подождите или нажмите сюда, чтобы открыть перевод в новом окне.
Перевод для голосового ввода и более длинных текстов
Перед началом работы с сервисом необходимо убедиться, что на компьютере установлена последняя версия Java.
This ensures that the current version of Radio Explorer still passes Tests in action on up-to-date operating system and on up-to-date Java software.
Это дает возможность удостовериться в том, что текущая версия Радиопроводника по-прежнему проходит Проверку в действии на обновленной операционной системе и на обновленном программном обеспечении Java.
Use the Software Update feature (available on the Apple menu) to check that you have the most up-to-date version of Java for your Mac.
Используйте функцию Software Update («Обновление программного обеспечения», в меню Apple), чтобы убедиться в том, что у вас установлена последняя версия Java для Mac.
If you’ve got an up to date version of your email application installed, it’ll already come with a sufficient spam filter.
Если у Вас более-менее свежая версия почтовой программы, то она наверняка уже снабжена достаточно адекватным антиспам-фильтром.
Comes with some emulators installed, but the best is to look for the most up-to-date version on Google Play.
Он поставляется с некоторыми установленными эмуляторами, но лучше всего искать последнюю версию на Google Play.
Убедитесь, что вы пользуетесь обновленной версией операционной системы со всеми установленными патчами
From the user point of view, the Tiger version of Java software better manages Java applications that can be installed via the Java Web Start technology.
С пользовательской точки зрения, в версии «Tiger» улучшена работа с приложениями Java, которые могут быть установлены с использованием технологии сетевого запуска Java Web Start. Радиопроводник относится к таким приложениям.
Again, irrespective of whatever release of Manjaro has been installed, provided it is kept up to date, then that will be the latest version available.
Опять же, независимо от того, какой бы выпуск Manjaro не был установлен, при условии постоянного обновления, это всегда будет самая последняя версия.
To ICQ users can be up to date, while away from home or office, have been developed Alternative versions of this program, which can be installed on mobile phones and use when needed.
Чтобы пользователи ICQ могли быть в курсе событий, находясь вне дома или офиса, были разработаны альтернативные версии данной программы, которые можно установить на мобильных телефонах и пользоваться при необходимости.
The Java Deployment Toolkit takes the guess work out of determining what versions of the Java Platform end users have installed on their PCs.
Пакет развертывания Java Deployment Toolkit позволяет исключить недостоверность и приблизительность при определении версий платформы Java, установленных на компьютерах пользователей.
Less than half (42.5%) of all Java users in the Kaspersky Security Network installed the update for the newest Java version.
Меньше половины всех пользователей Java в Kaspersky Security Network (42,5%), обновили это ПО до самой актуальной версии.
Java is installed for us too. openSUSE uses systemd for its init implementation and runs on version 4.12 of the Linux kernel.
Для нас также установлена Java. openSUSE использует systemd для инициализации и работает на версии ядра Linux 4.12.
CLICK HERE to check whether you have the recommended version of Java installed for your operating system.
Убедитесь, что у вас установлена версия Java, рекомендованная для использования с вашей операционной системой.
Network is able to detect the version of Java, installed on the system, and the browser with which it works.
Сеть способна детектировать версии Java, установленные в системе, а также браузеры, с которыми она работает.
Примеры предназначены только для помощи в переводе искомых слов и выражений в различных контекстах. Мы не выбираем и не утверждаем примеры, и они могут содержать неприемлемые слова или идеи. Пожалуйста, сообщайте нам о примерах, которые, на Ваш взгляд, необходимо исправить или удалить. Грубые или разговорные переводы обычно отмечены красным или оранжевым цветом.