Получение времени BIOS в Java

#java #datetime #operating-system #bios

#java #datetime #операционная система #bios

Вопрос:

Есть ли способ в Java получить дату и время BIOS?

Использует ли Java дату и время BIOS (базовая система ввода / вывода) при вызове java.util.Calendar.getInstance() или new java.util.Date()?

Я знаю, что Java каким-то образом обрабатывает текущую дату и время, используя 1 января 1970 года, 00:00:00 GMT в качестве основы.

Но как именно?

Ответ №1:

Он запрашивает операционную систему, которая может запрашивать, а может и не запрашивать BIOS.

Эти даты основаны на этой эпохе таким образом:

 new Date(0); // == Thu Jan 01 01:00:00 GMT 1970
  

Комментарии:

1. 1, хотелось бы добавить, что с точки зрения Javas такой вещи, как BIOS, даже не существует. Java должна быть запущена везде, независимо от того, есть BIOS или нет.

Ответ №2:

Есть способы, но они не переносимы. Один из способов — вызвать hwclock из вашей java-программы через Runtime.exec() и проанализировать выходные данные hwclock (Linux). Другими способами было бы использовать JNI и выполнить системный вызов.

Ответ №3:

Оба они используют System.currentTimeMillis() который получает время GMT от операционной системы. Операционная система, в свою очередь, может получать время из BIOS, но это зависит от операционной системы.