Найти текущую дату и день после завтрашней даты в Java
Как найти текущую дату в Java. Я нашел много, но каждый раз получал одну и ту же команду. Date d = new Date(); или что-то подобное Каждая такая команда возвращает дату 1970 года. Я не понимаю, какая польза от этого свидания 1970 года? Есть ли способ, где я могу получить текущее время и добавить в него секунду. Моя настоящая цель - преобразовать длинное значение в Date и добавить в него секунду. 5:40:12 должен дать мне 5:40:13 после добавления секунды. Любая помощь будет оценена, так как я сыт по горло получением даты 1970 года.
2 ответа
Моя настоящая цель - преобразовать длинное значение в Date и добавить в него секунду. 5:40:12 должен дать мне 5:40:13 после добавления второго
Хлопотно java.util.Date
класс теперь унаследован, заменен классами java.time.
Instant.ofEpochMilli( yourLongIntegerGoesHere ) // A moment on the timeline in UTC represented a count of nanoseconds since the epoch of `1970-01-01T00:00:00Z`.
.atZone( ZoneId.of( "Pacific/Auckland" ) // Time zone for the region whose wall-clock time you want to see.
.plusSeconds( 1 )
.toLocalTime() // Extract just the time-of-day without date and without time zone.
.toString() // Generate a string representing the time-of-day value in standard ISO 8601 format.
5:40:13
О java.time
Инфраструктура java.time встроена в Java 8 и более поздние версии. Эти классы вытесняют проблемные старые классы даты и времени, такие как java.util.Date
, Calendar
& SimpleDateFormat
,
Проект Joda-Time, находящийся сейчас в режиме обслуживания, рекомендует перейти на классы java.time.
Чтобы узнать больше, смотрите Oracle Tutorial. И поиск переполнения стека для многих примеров и объяснений. Спецификация JSR 310.
Где взять классы java.time?
- Java SE 8, Java SE 9 и более поздние
- Встроенный.
- Часть стандартного Java API со встроенной реализацией.
- Java 9 добавляет некоторые незначительные функции и исправления.
- Java SE 6 и Java SE 7
- Большая часть функциональности java.time перенесена на Java 6 и 7 в ThreeTen-Backport.
- Android
- Проект ThreeTenABP адаптирует ThreeTen-Backport (упомянутый выше) специально для Android.
- Смотрите Как использовать ThreeTenABP….
Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является полигоном для возможных будущих дополнений к java.time. Вы можете найти некоторые полезные классы здесь, такие как Interval
, YearWeek
, YearQuarter
и многое другое.
Класс Java.Util.Date устарел, я бы рекомендовал использовать
Java.Util.Calendar instead.
Если вы хотите добавить секунду к текущей дате, попробуйте что-то вроде этого:
Calendar currentTime = Calendar.getInstance(); // gets a calendar using the default time zone and locale.
calendar.add(currentTime.SECOND, 1);
System.out.println(currentTime.getTime());
НО, причина, по которой вы получаете дату 1970 года при использовании класса Date, заключается в том, что этот класс работает с миллисекундами, поэтому вы должны умножить длинное значение на 1000, чтобы преобразовать его в дату, вот пример.
Date currentDate = new Date( YourLongValue * 1000);