Как перевести время в секунды python
Перейти к содержимому

Как перевести время в секунды python

  • автор:

Примеры работы с модулем datetime в Python

Задача: имеем объект datetime , необходимо его преобразовать в секунды ( timestamp ).

>>> import datetime # Для преобразования получим объект `datetime`, # содержащий дату и время в настоящий момент >>> dt = datetime.datetime.now() >>> dt # datetime.datetime(2020, 5, 6, 13, 52, 5, 208688) # теперь получаем из `datetime` секунды - `timestamp` >>> second = dt.timestamp() >>> second # 1588762325.208688 # можно быстрее, одной строкой >>> second = datetime.datetime.now().timestamp() # 1588762325.208688 # если не нужны доли секунд, то # преобразуем в тип int >>> int(second) # 1588762325 

Преобразуем время в секундах ( timestamp ) в объект datetime :

Задача: имеем время в секундах, необходимо из секунд получить объект datetime , что бы потом что-то сделать.

>>> import datetime # имеем время в секундах second = 1588762325 # преобразовываем секунды в объект 'datetime' # его же методом '.timestamp()' >>> dt = datetime.datetime.fromtimestamp(second) >>> dt # datetime.datetime(2020, 5, 6, 13, 52, 5) # дальше работаем как с объектом # получаем строку >>> dt.strfptint('%d.%m.%Y %H:%M') # '06.05.2020 13:52' # через сколько новый год >>> future_dt = datetime.datetime.strptime('01.01.2021', '%d.%m.%Y') >>> delta = future_dt - dt # через дней >>> delta.days # 239 # секунд >>> delta.seconds # 36475 # месяцев >>> 239 // 30 # 7 

Получить объект datetime из отдельных объектов date и time :

>>> import datetime # дата >>> date = datetime.date.today() # время >>> time = datetime.time(23, 55) # интервал >>> delta = datetime.timedelta(minutes=30) # соединяем все вместе >>> datetime.datetime.combine(date, time) + delta # datetime.datetime(2020, 5, 6, 0, 25) 

Форматирование вывода строки c датой и временем:

>>> import datetime >>> dt = datetime.datetime.now() >>> dt.strftime('%H:%M - %m.%d.%Y года') # '09:56 - 05.06.2020 года' >>> dt.strftime('%H часов %M минут %m.%d.%Y года') # '09 часов 56 минут 05.06.2020 года' >>> dt.strftime('%m/%d/%y') # '05/06/20' >>> dt.strftime('%Y-%m-%d') # '2020-05-06' # форматирование даты при помощи функции format() >>> 'День: %d>, Месяц: , время: .'.format(dt) # 'День: 06, Месяц: May, время: 09:56.' # форматирование даты при помощи f-строк f'День: dt:%d>, Месяц: dt:%B>, время: dt:%H:%M>' # 'День: 06, Месяц: May, время: 09:56.' 

Преобразование строки с датой и временем в объект datetime.datetime() :

>>> import datetime >>> date_str = 'Fri, 24 Apr 2021 16:22:54 +0000' >>> format = '%a, %d %b %Y %H:%M:%S +0000' >>> datetime.datetime.strptime(date_str, format) # datetime.datetime(2021, 4, 24, 16, 22, 54) >>> date_str = '24.12.2020 16:22' >>> format = '%d.%m.%Y %H:%M' >>> datetime.datetime.strptime(date_str, format) # datetime.datetime(2020, 12, 24, 16, 22) 

Сложение и вычитание даты и времени:

При вычитании дат получается объект продолжительности — datetime.timedelta()

Подсчет дней до события.

>>> import datetime >>> today = datetime.datetime.now() >>> date = datetime.datetime(2020, 12, 6) >>> delta = date - today >>> delta.days # 213 

Подсчет дней прошедших с события.

>>> import datetime >>> date = datetime.datetime(2019, 12, 31) >>> today = datetime.datetime.now() >>> delta = today - date >>> delta.days # 127 

Узнать дату и время предстоящего или прошедшего события.

>>> import datetime >>> today = datetime.datetime.now() # узнаем, какая дата будет через 3 недели и 5 дней >>> delta = datetime.timedelta(weeks=3, days=5) >>> date = today + delta >>> date.day, date.month, date.year # (1, 6, 2020) # узнаем, какая дата была 100 дней назад >>> delta = datetime.timedelta(days=100) >>> date = today - delta >>> date.day, date.month, date.year # (27, 1, 2020) # узнаем, сколько время будет через 1 час 30 минут и 45 секунд >>> delta = datetime.timedelta(hours=1, minutes=30, seconds=45) >>> date = today + delta >>> date.hour, date.minute, date.second # (16, 18, 15) 

Сравнение объектов datetime.datetime() :

  • datetime1 считается меньше datetime2, когда datetime1 предшествует datetime2 во времени
  • При сравнении datetime1 c параметром tz не равным None с datetime2 , у которого параметром tz=None вызывается TypeError .
  • При сравнений на равенство datetime1 c параметром tz не равным None никогда не будут равен datetime2 , у которого параметром tz=None .
>>> import datetime >>> today = datetime.datetime.now() >>> delta = datetime.timedelta(weeks=3, days=1) >>> date = today - delta >>> date  today # True >>> date = today + delta >>> date  today # False >>> date > today # True # Сравнение с заранее заданной датой >>> today = datetime.datetime.now() >>> date = datetime.datetime(2020, 5, 6) >>> date.date() == today.date() # True 
  • КРАТКИЙ ОБЗОР МАТЕРИАЛА.
  • Класс timedelta() модуля datetime
  • Примеры использования datetime.timedelta()
  • Класс date() модуля datetime
  • Методы экземпляра datetime.date()
  • Примеры использования datetime.date()
  • Класс datetime() модуля datetime
  • Методы экземпляра datetime.datetime()
  • Примеры работы с модулем datetime
  • Класс time() модуля datetime
  • Класс tzinfo() модуля datetime
  • Класс timezone() модуля datetime
  • Правила форматирования strftime() и strptime() модуля datetime

Как из минуты, часов, дней в секунды?

Author24 — интернет-сервис помощи студентам

Здравствуйте. Суть идеи такова:
Пользователь вводит строку, где указаны числа и буква, которая обозначает тип времени.
Пример строки: «10m» — 10 минут или «5h» — 5 часов.

Далее эту строку нужно перевести в секунды.
Пример итога: «600» — 10 минут в секундах или «18000» — 5 часов в секундах.

Помогите, пожалуйста. Кто нибудь делал подобное?

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Перевести время: из дней в часы, из часов в минуты, из минут в секунды
Напишите программу, которая переводит время:из дней в часы, из часов в минуты, из минут в секунды.

Округлить время (часы, минуты, секунды) до часов, минут или до часов
Всем привет! Нужна помощь с исправлением программы на c#. По заданию нужно округлить время (часы.

Перевод часов в минуты и секунды
Тут проблемка небольшая. Написал код, вроде должен считать, но показывает всегда одни значения -.

Перевод часов в минуты, секунды, миллисекунды
Написать программу, которая в зависимости от выбранного номера и количества часов N переводила их в.

Преобразование часов в минуты или секунды
Написать программу преобразования часов в минуты или секунды по выбору пользователя.

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » время

#1 Сен. 17, 2010 14:55:55

voron От: Зарегистрирован: 2010-09-17 Сообщения: 23 Репутация: 0 Профиль Отправить e-mail

время

как быть со временем
вводим в секундах перевести в часы:минуты:секунды

Отредактировано (Сен. 17, 2010 14:56:30)

#2 Сен. 17, 2010 15:20:33

AterCattus От: Зарегистрирован: 2010-09-16 Сообщения: 7 Репутация: 0 Профиль Отправить e-mail

время

#3 Сен. 17, 2010 15:31:04

voron От: Зарегистрирован: 2010-09-17 Сообщения: 23 Репутация: 0 Профиль Отправить e-mail

время

малец недопонел а как будет программа с этим выглядить?

#4 Сен. 17, 2010 15:34:01

AterCattus От: Зарегистрирован: 2010-09-16 Сообщения: 7 Репутация: 0 Профиль Отправить e-mail

время

От вашего кода зависит. В интерактивном режиме выглядит так:

$ python
.
>>> import datetime
>>> str(datetime.timedelta(seconds=int(raw_input())))
12345
'3:25:45'
>>>

Отредактировано (Сен. 17, 2010 15:34:18)

#5 Сен. 17, 2010 15:47:31

voron От: Зарегистрирован: 2010-09-17 Сообщения: 23 Репутация: 0 Профиль Отправить e-mail

время

спаиб
если есть другие способы пишите

#6 Сен. 17, 2010 15:51:54

AterCattus От: Зарегистрирован: 2010-09-16 Сообщения: 7 Репутация: 0 Профиль Отправить e-mail

время

можно divmod, вычленяя компоненты по отдельности.

#7 Сен. 17, 2010 17:11:35

voron От: Зарегистрирован: 2010-09-17 Сообщения: 23 Репутация: 0 Профиль Отправить e-mail

время

#8 Сен. 17, 2010 17:27:42

SETY От: Зарегистрирован: 2010-06-04 Сообщения: 26 Репутация: 0 Профиль Отправить e-mail

время

z=input('ввод числа:')
h=z/3600
m=z%3600/60
s=z%3600%60

print '%i:%i:%i' % (h, m, s)

#9 Сен. 18, 2010 08:52:26

sypper-pit От: Ulan-Ude(msk) Зарегистрирован: 2009-01-30 Сообщения: 1102 Репутация: 6 Профиль Отправить e-mail

время

voron
как быть со временем
вводим в секундах перевести в часы:минуты:секунды

datetime.datetime.now().strftime("The date is %A (%a) %d/%m/%Y"

#10 Сен. 19, 2010 12:41:11

py.user.next От: Зарегистрирован: 2010-04-29 Сообщения: 9746 Репутация: 843 Профиль Отправить e-mail

время

>>> import time
>>> s = time.localtime(12345)
>>> print(s.tm_hour, s.tm_min, s.tm_sec, sep=':') # python 3.x
14:25:45
>>> s
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=14, tm_min=25, tm_sec=45, tm_wday=3, tm_yday=1, tm_isdst=0)
>>>

add
это мне показалось, что нужно узнать часы из секунд

Отредактировано (Сен. 19, 2010 12:48:54)

Нахождение длительности временных интервалов в Python

Python-программисту, при работе со значениями, представляющими дату и время, часто нужно вычислять длительность временных интервалов. Из этого материала вы узнаете о том, как находить разницу между двумя временными метками, выраженную в часах, минутах и секундах.

А именно, здесь мы коснёмся следующих вопросов:

  • Как пользоваться Python-модулем datetime для работы с датой и временем.
  • Что собой представляют объекты timedelta и что они могут дать программисту.
  • Как вычислять продолжительность временных интервалов, выражая результат в разных единицах измерения.

Python-модуль datetime

Для работы с датой и временем в Python используется модуль datetime . Он является частью стандартной библиотеки Python. Для того чтобы применить этот модуль в своём проекте — достаточно его импортировать:

import datetime 

Для вычисления продолжительности временного интервала нужно создать две различных отметки времени. Тут есть несколько вариантов:

  • Два объекта date — стандартное представление даты.
  • Два объекта time — стандартное представление времени.
  • Два объекта datetime , комбинирующие сведения, которые обычно хранятся в объектах date и time .

Создание объектов date

Импортируем класс date из модуля datetime . Для того чтобы создать в Python объект date — можно воспользоваться обычной синтаксической конструкцией вида datetime.date(,,) . Вот пример создания объекта date с именем date1 :

from datetime import date date1 = datetime.date(2022,3,27) print(date1) # Вывод: 2022-03-27 

Этот код можно попробовать запустить в онлайн-интерпретаторе Python на Geekflare. Ещё можно установить Python у себя.

Из предыдущего примера видно, что дата выводится в формате YYYY-MM-DD .

Обратите внимание на то, что при создании объекта date месяц надо задавать с использованием целого числа, в начале которого нет дополнительных нулей. Обычно в числовой записи месяцев соответствующие числа дополняют нулями. Здесь же, например, чтобы указать Июнь, то есть — 6 месяц — нужно воспользоваться числом 6, а не 06.

Попробуйте запустить следующий фрагмент кода. Тут месяц намеренно записан неправильно — 03 вместо 3. Из-за этого возникает ошибка SyntaxError :

date1 = datetime.date(2022,03,27) print(date1) # Сообщение об ошибке File "", line 1 date1 = datetime.date(2022,03,27) ^ SyntaxError: invalid token 

Поговорим теперь о том, как создавать объекты time .

Создание объектов time

Для создания объектов time импортируем класс time . При создании таких объектов указывают следующие атрибуты класса: hour , minute , second и microsecond . Они, соответственно, позволяют указывать часы, минуты, секунды и микросекунды.

Правда, все эти атрибуты являются необязательными. Если какой-то из них опустить, предположим — second , то он, по умолчанию, будет установлен в 0.

В следующем примере показано создание объекта time с именем time1 . Так же, как и при работе с объектами date , объекты time можно выводить в консоль:

from datetime import time time1 = datetime.time(13,27,45,4600) print(time1) # Вывод: 13:27:45.004600 

Создание объектов datetime

Как видите, объекты типа date не содержат сведений о времени. А в объектах time нет информации о дате.

Но на практике обычно нужны данные и о дате, и о времени. Поэтому вместо двух вышеописанных классов рекомендуется прибегнуть к классу datetime .

Обратиться к этому классу и создать соответствующий объект ( dt1 ) можно так:

dt1 = datetime.datetime(2022,3,27,13,27,45,46000) print(dt1) # Вывод: 2022-03-27 13:27:45.046000 

Создадим ещё один объект datetime и дадим ему имя dt2 , опустив при его создании атрибут second . Это приведёт к тому, что он будет установлен в значение по умолчанию — 0.

dt2 = datetime.datetime(2022,6,30,14,28) print(dt2) # Вывод: 2022-06-30 14:28:00 

Итак, теперь вы знаете о том, как создавать Python-объекты date , time и datetime , представляющие отметки времени. Пришло время поговорить о том, как находить длительность временных интервалов.

Применение объектов timedelta

В Python объекты timedelta представляют собой сведения о промежутках времени. Это — разница двух объектов date , time или datetime .

Если сложить или вычесть два объекта date , time или datetime , получится объект timedelta . У этого объекта имеются полезные атрибуты и методы, которые могут помочь в деле нахождения длительности временных интервалов.

Посчитаем длительность интервала, задаваемого двумя объектами типа datetime — dt1 и dt2 :

dt1 = datetime.datetime(2022,3,27,13,27,45,46000) dt2 = datetime.datetime(2022,6,30,14,28) tdelta = dt2 - dt1 print(tdelta) print(type(tdelta)) # Вывод 95 days, 1:00:14.954000

Видно, что переменная tdelta хранит разницу между dt1 и dt2 . Тут, кроме того, пользуясь встроенной Python-функцией type() , мы проверили тип tdelta . Это — timedelta .

Проведём ещё один эксперимент.

Нахождение временного промежутка между двумя датами

Рассмотрим простой, но интересный пример.

Задача заключается в том, чтобы получить временную разницу между текущей датой (сегодняшним днём) и днём вашего рождения.

Для того чтобы её решить — надо сформировать первую отметку времени, указывающую на сегодняшний день, и вторую, указывающую на дату дня рождения.

Создадим пару объектов datetime :

  • Первый будет хранить сегодняшнюю дату, мы назовём его today .
  • Второй будет хранить дату дня рождения. Назовём его bday .
today = datetime.datetime.now() print(today) # Пример вывода: 2022-01-22 09:10:18.489538 

Пробуя следующий код, замените значение, попадающее в bday , на дату своего дня рождения текущего года. Это позволит узнать о том, сколько времени вам ещё его ждать в этом году.

Если же ваш день рождения в этом году уже прошёл, можете записать в bday дату из следующего года.

bday = datetime.datetime(2022,8,30,11,59) print(bday) # Пример вывода: 2022-08-30 11:59:00 

Следующий шаг нашей работы — нахождение разницы между двумя отметками времени. Её мы будем хранить в переменной time_diff . Подобные переменные, как мы уже говорили, имеют тип timedelta . Нам достаточно вычесть today из bday .

time_diff = bday - today print(f"Your birthday is in ") # Вывод Your birthday is in 220 days, 2:46:00.127416 

Для того чтобы узнать о том, сколько полных дней осталось до дня рождения, можно воспользоваться атрибутом days объекта типа timedelta .

tdays = time_diff.days print(f"Your birthday is in days.") # Вывод Your birthday is in 220 days. 

Выражение длительности временных промежутков в секундах

Теперь узнаем о том, сколько ждать дня рождения, выразив результат в секундах.

Для этого можно воспользоваться методом total_seconds() объекта типа timedelta . В следующем примере это — всё тот же объект time_diff .

tsecs = time_diff.total_seconds() print(f"Your birthday is seconds away.") # Вывод Your birthday is 19017960.127416 seconds away. 

Да, дня рождения придётся подождать!

Теперь вы знаете о том, как вычислять промежутки времени и выражать их в секундах.

Давайте вспомним то, что мы знаем о времени, и поговорим об измерении времени в днях, часах, минутах и секундах. В сутках 24 часа, в часе 60 минут, а 60 секунд — это минута.

Часы, минуты и секунды

Для перехода от секунд к минутам, дням или часам, можно воспользоваться следующей таблицей, деля значение в секундах на соответствующий коэффициент преобразования.

Из В Делим на
Секунд Минуты 60
Секунд Часы 60*60
Секунд Дни 60*60*24

Воспользуемся этими знаниями.

Выражение длительности временных промежутков в минутах

Для того чтобы, имея данные о длительности промежутка времени, выраженные в секундах, узнать его длительность в минутах, нужно разделить общее число секунд на 60.

Разделим то, что хранится в переменной tsecs , на 60, и сохраним то, что получится, в переменной tmins :

tmins = tsecs/60 print(f"Your birthday is minutes away.") # Вывод Your birthday is 316966.0021236 minutes away. 

Выражение длительности временных промежутков в часах

Теперь посчитаем длительность временного промежутка, выраженную в часах. Учитывая то, что у нас уже есть значение, выраженное в минутах, для достижения этой цели его можно просто поделить на 60. Или можно поделить значение, выраженное в секундах, на 3600 (60*60).

thrs = tsecs/(60*60) print(f"Your birthday is hours away.") # Вывод Your birthday is 5282.76670206 hours away. 

Теперь вы знаете о том, как представлять разные промежутки времени в нужном вам виде.

Итоги

Освоив это руководство, вы узнали следующее:

  • Как создавать объекты, содержащие сведения о дате и времени, пользуясь модулем datetime , и как работать с такими объектами.
  • Как пользоваться объектами типа timedelta для нахождения длительности временных промежутков или разницы между двумя объектами, содержащими сведения о дате или времени.
  • Как выражать длительность временных промежутков в секундах, минутах и часах.

Какие задачи вы решаете с помощью Python?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *