Преобразование времени в часы, минуты и секунды в Python
В этом уроке мы поговорим о времени. Не волнуйтесь, это не скучный учебник по истории, мы рассмотрим различные способы преобразования времени в секундах во время в часах, минутах и секундах.
Двигаясь вперед, мы будем ссылаться на время в часах, минутах и секундах как время в предпочтительном формате.
Это будет выглядеть так:
2:46:40
Давайте возьмем некоторое «время» и подумаем о проблеме. Без сомнения, у python есть замечательные модули для преобразования за нас. Но давайте сначала попробуем написать нашу собственную программу, прежде чем мы перейдем к встроенным модулям.
Создание пользовательской функции для преобразования времени в часы, минуты и секунды
Чтобы написать нашу собственную функцию преобразования, нам сначала нужно подумать о проблеме математически.
Как вы конвертируете секунды в предпочтительный формат?
Вам нужно получить значение часов, минут и секунд.
Будем считать, что время в секундах не превышает общего количества секунд в сутках. Если это так, мы разделим его на общее количество секунд в сутках и возьмем остаток.
Это математически представляется как:
seconds = seconds % (24 * 3600)
Оператор % дает остаток.
24*3600, так как в одном часе 3600 секунд (60*60), а в сутках 24 часа.
После этого мы можем продолжить и вычислить значение часа из секунд.
1. Получите значение часа
Чтобы получить значение часа из секунд, мы будем использовать оператор деления пола (//).
Возвращает целую часть частного.
Так как нам нужно количество часов, мы разделим общее количество секунд (n) на общее количество секунд в часе (3600).
Математически это представляется как:
hour = seconds // 3600
После этого нам нужно рассчитать минуты.
2. Получите минутное значение
Чтобы рассчитать значение минут, нам нужно сначала разделить общее количество секунд на 3600 и взять остаток.
Математически это представляется как:
seconds = seconds % 3600
Теперь, чтобы вычислить значение минут из приведенного выше результата, мы снова будем использовать оператор пола.
minutes = seconds // 60
Минута состоит из шестидесяти секунд, поэтому мы уменьшаем значение секунд до 60.
После вычисления значения минут мы можем перейти к вычислению значения секунд для нашего предпочтительного формата.
3. Получите значение секунд
Чтобы получить значение секунд, нам снова нужно разделить общее количество секунд на количество секунд в одной минуте (60) и взять остаток.
Математически это делается следующим образом:
seconds = seconds % 60
Это даст второе значение, которое нам нужно для нашего предпочтительного формата.
4. Полный код
Давайте скомпилируем вышеуказанные знания в функции Python.
def convert_to_preferred_format(sec):
sec = sec % (24 * 3600)
hour = sec // 3600
sec %= 3600
min = sec // 60
sec %= 60
print("seconds value in hours:",hour)
print("seconds value in minutes:",min)
return "%02d:%02d:%02d" % (hour, min, sec)
n = 10000
print("Time in preferred format :-",convert(n))
Выход :
seconds value in hours: 2
seconds value in minutes: 46
Time in preferred format :- 02:46:40
Использование модуля «Время»
Теперь давайте посмотрим на встроенный модуль, который позволяет нам конвертировать секунды в наш предпочтительный формат с помощью одной строки кода.
Модуль времени определяет эпоху как 1 января 1970 года, 00:00:00 (UTC) в системах Unix (зависит от системы). Эпоха — это, по сути, начало времени для компьютера. Думайте об этом как о дне 0. Всякий раз, когда мы конвертируем секунды с помощью модуля времени, эта эпоха используется в качестве точки отсчета.
Чтобы вывести эпоху в вашей системе, используйте следующую строку кода:
time.gmtime(0)
Чтобы преобразовать секунды в предпочтительный формат, используйте следующую строку кода:
time.strftime("%H:%M:%S", time.gmtime(n))
Эта строка принимает время в секундах как «n», а затем позволяет вам выводить значение часа, минуты и секунды отдельно.
Полный код Python выглядит следующим образом:
import time
n=10000
time_format = time.strftime("%H:%M:%S", time.gmtime(n))
print("Time in preferred format :-",time_format)
Выход :
Time in preferred format :- 02:46:40
Модуль времени также дает вам возможность отображать дополнительную информацию, такую как день, месяц и год.
%a |
display abbreviated weekday name. |
%A |
display full weekday name. |
%b |
display abbreviated month name. |
%B |
display full month name. |
%c |
display the appropriate date and time representation. |
%d |
display day of the month as a decimal number [01,31]. |
Давайте попробуем использовать %a и %b.
import time
n=100000000000
time_format = time.strftime("Day: %a, Time: %H:%M:%S, Month: %b", time.gmtime(n))
print("Time in preferred format :-",time_format)
Выход :
Time in preferred format :- Day: Wed, Time: 09:46:40, Month: Nov
Использование модуля даты и времени
Вы также можете использовать метод timedelta в модуле DateTime для преобразования секунд в предпочтительный формат.
Он отображает время в виде дней, часов, минут и секунд, прошедших с начала эпохи.
Код Python для преобразования секунд в предпочтительный формат с использованием модуля Datetime выглядит следующим образом:
import datetime
n= 10000000
time_format = str(datetime.timedelta(seconds = n))
print("Time in preferred format :-",time_format)
Выход :
Time in preferred format :- 115 days, 17:46:40
Заключение
В этом руководстве были рассмотрены три различных способа преобразования секунд в часы, минуты и секунды. В общем, есть два разных пути решения проблемы.
Либо вы пишете свою собственную функцию, либо используете встроенный модуль. Мы начали с написания собственной функции, а затем рассмотрели модуль времени и даты и времени.