Временная метка Java - добавление пяти минут - программирование
Подтвердить что ты не робот

Временная метка Java - добавление пяти минут

Ищем некоторую помощь с немного кода Java, над которым я работаю, у меня есть следующий код, который печатает дату и время:

  Date dNow = new Date( ); // Instantiate a Date object
  SimpleDateFormat ft = new SimpleDateFormat ("MMM d, yyyy k:mm:ss");  // Time at server

Результат: 15 марта 2013 г. 10:19:48

Я создаю счетчик javascript для работы с этого числа и обратного отсчета с 5 минут. Поэтому мне нужно добавить 5 минут к текущему времени на Java.

Итак, если текущее время дата: 15 марта 2013 10:19:48

Мне нужно добавить 5 минут на Java, чтобы он распечатывался: 15 марта 2013 г. 10:24:48

Любые идеи?

4b9b3361

Ответ 1

Вместо того, чтобы начинать с

new Date()

начните с

new Date(System.currentTimeMillis()+5*60*1000)

Это даст вам экземпляр Date, который представляет ваш необходимый момент времени. Вам не нужно изменять какую-либо другую часть вашего кода.

Ответ 2

Вы должны использовать класс календаря для управления датой и временем:

Класс Calendar - это абстрактный класс, который предоставляет методы для конвертирование между конкретным временем во времени и набором календаря такие как YEAR, MONTH, DAY_OF_MONTH, HOUR и т.д., и для манипулирование полями календаря, например, получение даты следующего неделя

  Date dNow = new Date( ); // Instantiate a Date object
  Calendar cal = Calendar.getInstance();
  cal.setTime(dNow);
  cal.add(Calendar.MINUTE, 5);
  dNow = cal.getTime();

Ответ 3

Игнорирование Dates и фокусировка на вопросе.

Предпочитаю использовать java.util.concurrent.TimeUnit, поскольку он добавляет ясности в мой код.

В Java,

long now = System.currentTimeMillis();

5 минут от now с помощью TimeUtil:

long nowPlus5Minutes = now + TimeUnit.MINUTES.toMillis(5);

Ссылка: http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html

Ответ 4

Используйте это...

    Calendar calendar = Calendar.getInstance();
    System.out.println(calendar.getTime());
    calendar.add(Calendar.MINUTE, 5);
    System.out.println(calendar.getTime());

Ответ 5

Date dNow = new Date(System.currentTimeMillis()+5*60*1000)
SimpleDateFormat ft = new SimpleDateFormat ("MMM d, yyyy k:mm:ss");
System.out.println(ft.format(dNow));

с помощью устаревшего метода getMinutes(),setMinutes(int)

 Date dNow = new Date( ); // Instantiate a Date object
 int mm = dNow.getMinutes();
 dNow.setMinutes(mm+5);

Ответ 6

В датах Java используются Unix time в миллисекундах. Таким образом, вы либо вычислите, сколько 5 минут в миллисекундах, и добавьте их в свою дату, либо используйте класс Calendar, который сделает это за вас.

Ответ 7

TL;DR

Instant.now()
       .plusSeconds( TimeUnit.MINUTES.toSeconds( 5 ) )
       .toString()

2017-01-23T03: 11: 53.763Z

Подробнее

Другие ответы устарели, как и на Java 8. Неудобные старые классы времени и времени теперь устаревают, вытесняются классами java.time.

Instant класс представляет момент на временной шкале в UTC с разрешением наносекунды (до девяти (9) цифр десятичной дроби).

Instant instant = Instant.now();

Этот класс может выполнять математику, такую ​​как добавление нескольких секунд. Мы можем использовать TimeUnit enum, чтобы скрыть наши желаемые пять минут на несколько секунд.

long seconds = TimeUnit.MINUTES.toSeconds( 5 );
Instant fiveMinutesLater = instant.plusSeconds( seconds );

Чтобы создать строку в стандартном формате ISO 8601, вызовите toString.

String output = fiveMinutesLater.toString();

Чтобы генерировать строки в других форматах, используйте класс ZonedDateTime class и DateTimeFormatter. Поиск для многих примеров и обсуждений этих классов.


О java.time

Структура java.time встроена в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые legacy классы времени, такие как java.util.Date, Calendar и SimpleDateFormat.

Проект Joda-Time, теперь режим обслуживания, советуем перейти к классам java.time.

Чтобы узнать больше, см. Учебник Oracle. И поиск Qaru для многих примеров и объяснений. Спецификация 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

Проект ThreeTen-Extra расширяет java.time с помощью дополнительных классов. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval, YearWeek, YearQuarter и больше.