Поиск по сайту:

Преобразование времени в часы, минуты и секунды в 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

Заключение

В этом руководстве были рассмотрены три различных способа преобразования секунд в часы, минуты и секунды. В общем, есть два разных пути решения проблемы.

Либо вы пишете свою собственную функцию, либо используете встроенный модуль. Мы начали с написания собственной функции, а затем рассмотрели модуль времени и даты и времени.