#python #datetime
Нужно взять дату и время, и добавить к времени 30 минут. Как вывести дату и время знаю, но вот никак не получаеться добавить 30 минут: import time import datetime dt = datetime.datetime.now() print dt.strftime('%d.%m.%Y %H:%M') # -> 27.04.2017 13:07 Кто подскажет?
Ответы
Ответ 1
Чтобы получить datetime значение, соответствующее половине оборота минутной стрелки (30 минут по часам) от текущего значения: from datetime import datetime, timedelta clock_in_half_hour = datetime.now() + timedelta(minutes=30) Если вы хотите получить локальное время, которое будет через 1800 секунд от текущего в будущее, то это значение может отличаться из-за перевода часов (к примеру, из-за разницы между летним/зимним временем в текущей часовой зоне). В этом случае следует использовать datetime с tzinfo (Питон 3): from datetime import datetime, timedelta, timezone future_in_half_hour = datetime.now(timezone.utc) + timedelta(minutes=30) local_time = future_in_half_hour.astimezone() python на текущей платформе может не иметь доступа к tz database (Windows) или на старых Питон версиях нет timezone модуля. Самый переносимый вариант это использовать информацию о часовых поясах из pytz модуля: from datetime import datetime, timedelta import pytz # $ pip install pytz import tzlocal # $ pip install tzlocal local_timezone = tzlocal.get_localzone() # pytz-timezone future_in_half_hour = datetime.now(pytz.utc) + timedelta(minutes=30) local_time = future_in_half_hour.astimezone(local_timezone) tzlocal модуль используется, чтобы найти pytz временну́ю зону, соответствующую локальной часовой зоне. pendulum позволяет скрыть эти детали, связанные со сменой смещения от UTC в местном времени: import pendulum # $ pip install pendulum future_in_half_hour = pendulum.now().add(minutes=30) Дополнительная информация: Как получить часовой пояс на Python Find if 24 hrs have passed between datetimes - Python Если вы не знали, что местное время может повторяться (не монотонно, не уникально) или вообще отсутствовать, посмотрите на картинки в python converting string in localtime to UTC epoch timestamp.Ответ 2
Используйте timedelta. from datetime import timedelta, datetime now = datetime.now() after_30_minutes = now + timedelta(minutes=30)
Комментариев нет:
Отправить комментарий