Ключевой момент: вы можете вызвать System.currentTimeMillis(), которая возвращает текущее время.
Задача заключается в разработке программы, которое показывает текущее время в GMT (Greenwich Mean Time, т.е. среднее время по Гринвичу) в формате часы:минуты:секунды, т.е. 13:19:8.
Метод currentTimeMillis в классе System возвращает текущее время в миллисекундах, истёкшее с полуночи 1 января 1970 GMT, как показано на следующем рисунке:
Это время известно как Эра UNIX (UNIX epoch). Эра – это точка, когда началось время, а 1970 – это год, когда официально представлена операционная система UNIX.
Вы можете использовать этот метод для получения текущего времени, а затем вычисления текущих секунд, минут, часов следующим образом:
- Получить общее число миллисекунд с полуночи 1 января 1970 в totalMilliseconds вызовом System.currentTimeMillis() (к примеру, 1203183068328 миллесекунд).
- Получить общее число секунд totalSeconds разделив totalMilliseconds на 1000 (например, 1203183068328 миллисекунд / 1000 = 1203183068 секунд).
- Вычислить текущую секунд из totalSeconds % 60 (например, 1203183068 секунд % 60 = 8, что будет текущей секундой).
- Получить общее количество минут totalMinutes разделив totalSeconds на 60 (к примеру, 1203183068 секунд / 60 = 20053051 минут).
- Вычислить текущее время из totalMinutes % 60 (к примеру, 20053051 минут % 60 = 31, это будет текущая минута).
- Получить общее количество часов totalHours разделив totalMinutes на 60 (например, 20053051 минут / 60 = 334217 часов).
- Вычислить текущий час из totalHours % 24 (например, 334217 часов % 24 = 17, это будет текущий час).
public class ShowCurrentTime { public static void main(String[] args) { // Получить общее количество миллисекунд с полночи 1 января 1970 long totalMilliseconds = System.currentTimeMillis(); // Получить общее количество миллисекунд с полночи 1 января 1970 long totalSeconds = totalMilliseconds / 1000; // Рассчитать текущую секунду этой минуты и этого часа long currentSecond = totalSeconds % 60; // Получить общее количество минут long totalMinutes = totalSeconds / 60; // Рассчитать текущую минуту этого часа long currentMinute = totalMinutes % 60; // Получить общее количество часов long totalHours = totalMinutes / 60; // Рассчитать текущий час long currentHour = totalHours % 24; // Отобразить результаты System.out.println("Текущее время " + currentHour + ":" + currentMinute + ":" + currentSecond + " GMT"); } }
Строка 4 вызывает System.currentTimeMillis() для получения текущего времени в миллисекундах, как величину long. Поэтому все переменные в этой программе объявлены как тип long. Секунды, минуты и часы извлекаются из текущего времени используя операторы / и % (строки 6–22).
Проверь себя:
- Как вы получаете текущую секунду, минуту и час?