Я искал код в 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:
Ответ 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
Встроенный в Java 8 и позже. Официальный преемник Joda-Time.
назад перенесен в Java 6 & 7 и на Android. - Joda-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.
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....
Проект 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....()