Java-код для получения текущего времени

Я искал код в java для получения или синхронизации времени моего локального ПК в моем приложении.

Ответ 1

Попробуйте следующее:

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class currentTime {

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        System.out.println( sdf.format(cal.getTime()) );
    }

}

Вы можете форматировать SimpleDateFormat так, как вам нравится. Для получения дополнительной информации вы можете посмотреть в java api:

SimpleDateFormat

Calendar

Ответ 2

И

new java.util.Date()

и

System.currentTimeMillis()

предоставит вам текущее системное время.

Ответ 3

ТЛ; др

Instant.now()  // UTC

... или...

ZonedDateTime.now(
    // Specify time zone.
    ZoneId.of( "Pacific/Auckland" )
)  

Подробнее

Связанные классы java.util.Date/.Calendar общеизвестно хлопотны. Избежать их. Теперь они унаследованы и заменены платформой java.time.

Вместо этого используйте либо:

java.time

ZonedDateTime zdt = ZonedDateTime.now();

Если необходимо для старого кода, конвертируйте его в java.util.Date. Перейдите на Instant, что является моментом на временной шкале в UTC.

java.util.Date date = java.util.Date.from( zdt.toInstant() );

часовой пояс

Лучше явно указать свой желаемый/ожидаемый часовой пояс, чем неявно полагаться на JVM текущий часовой пояс по умолчанию.

ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( zoneId );  // Pass desired/expected time zone.

Table of date-time types in Java, both modern and legacy

Joda времени

К вашему сведению, проект Joda-Time в настоящее время находится в режиме обслуживания, а команда рекомендует перейти на классы java.time.

DateTime now = DateTime.now();

Преобразовать из объекта Joda-Time DateTime в java.util.Date для взаимодействия с другими классами...

java.util.Date date = now.toDate();

Поиск Кару перед публикацией. Ваш вопрос уже был задан и получен ответ.


О java.time

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

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

Чтобы узнать больше, см. Учебное пособие по Oracle. И поищите в Кару множество примеров и объяснений. Спецификация: 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
    • Более поздние версии Android связывают реализации классов java.time.
    • Для более ранних версий Android проект ThreeTenABP адаптирует ThreeTen-Backport (упомянутый выше). Смотрите Как использовать ThreeTenABP....

Table of which java.time library to use with which version of Java or Android

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

Ответ 4

System.currentTimeMillis()

все остальное работает, например.. new Date() вызывает System.currentTimeMillis().

Ответ 5

Попробуйте этот способ, более эффективный и совместимый:

SimpleDateFormat time_formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSS");
String current_time_str = time_formatter.format(System.currentTimeMillis());
//Log.i("test", "current_time_str:" + current_time_str);

Ответ 6

Просто для того, чтобы сообщить разработчикам далее, и, к счастью, Basil Bourque, я просто хочу добавить свой камень в эту тему.

Если вы хотите просто получить формат HH: MM: SS, сделайте следующее:

LocalTime hour = ZonedDateTime.now().toLocalTime().truncatedTo(ChronoUnit.SECONDS);

Приветствия.

P.S.: Это будет работать только по крайней мере с Java 8!

Ответ 7

Как сказано выше, вы можете использовать

Date d = new Date();

или используйте

Calendar.getInstance();

или если вы хотите его в миллисе

System.currentTimeMillis()

Ответ 8

Не уверен, что вы имели в виду, но вам, вероятно, просто нужно

Date d = new Date();

Ответ 9

попробуйте следующее:

final String currentTime    = String.valueOf(System.currentTimeMillis());

Ответ 10

Вы можете использовать новую дату(), и она даст вам текущее время.

Если вам нужно представить его в каком-то формате (и, как правило, вам нужно это сделать), используйте formatters.

DateFormat df = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, new Locale ("en", "EN"));
String formattedDate = df.format (new Date ());

Ответ 11

new Date(). getTime() прослушивается.

    Date date = new Date();
    System.out.println(date);
    System.out.println(date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
    long t1 = date.getTime();
    System.out.println((t1 / 1000 / 60 / 60) % 24 + ":" + (t1 / 1000 / 60) % 60 + ":" + (t1 / 1000) % 60);
    long t2 = System.currentTimeMillis();
    System.out.println((t2 / 1000 / 60 / 60) % 24 + ":" + (t2 / 1000 / 60) % 60 + ":" + (t2 / 1000) % 60);

Он возвращает мне неправильное время. System.currentTimeMillis() тоже. Поскольку я спрашиваю Date экземпляр, чтобы сообщить мне соответствующие промежутки времени, он должен вернуть соответствующие, а не другие, из другого часового пояса. Забавно, как устаревшие методы являются единственными, которые возвращают правильные значения.

Ответ 12

Чтобы использовать системное время Calendar.getInstance(). getTime()

И вы должны каждый раз получать новый экземпляр Календаря, чтобы иметь текущее время.

Чтобы изменить системное время из java-кода, вы можете использовать командную строку

Ответ 13

Я понимаю, что это довольно старый вопрос. Но хотелось бы уточнить, что:

Date d = new Date() 

лишается в текущих версиях Java. Рекомендуемым способом является использование объекта календаря. Например,

Calendar cal = Calendar.getInstance();
Date currentTime = cal.getTime();

Я надеюсь, что это поможет людям, которые могут отсылать этот вопрос в будущем. Спасибо всем.

Ответ 14

попробуйте это, чтобы получить текущую дату. Вы также можете получить текущий час, минуты и секунды с помощью геттеров:

new Date(System.currentTimeMillis()).get....()