#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, но это зависит от операционной системы.