Сообщить об ошибке.

Функция strptime() модуля time в Python

Преобразовать строку с датой в структуру времени

Синтаксис:

import time

time.strptime(string[, format])

Параметры:

Возвращаемое значение:

Описание:

Функция strptime() модуля time преобразовывает строку string, представляющую время в соответствии с форматом format. Возвращаемое значение - это именованный кортеж, представляющий структуру времени time.struct_time, которую возвращают функции time.gmtime() или time.localtime().

Параметр format использует те же директивы, что и time.strftime(). По умолчанию используется значение "%a %b %d %H:%M:%S %Y", которое соответствует форматированию, возвращаемому функцией time.ctime().

Если строка не может быть проанализирована в соответствии с форматом или если она содержит избыточные данные, то после анализа вызывается исключение ValueError.

Значения по умолчанию, используемые для заполнения любых пропущенных данных, когда более точные значения не могут быть выведены, являются (1900, 1, 1, 0, 0, 0, 0, 1, -1). Строка с датой и временем string и формат format должны быть строками.

Поддержка директивы %Z основана на значениях, содержащихся в time.tzname, и на том, является ли константа time.daylight истинной. Из-за этого он зависит от платформы, за исключением распознавания UTC и GMT, которые всегда известны и считаются часовыми поясами без перехода на летнее время.

Поддерживаются только директивы, указанные в документации к функции strftime(). Поскольку strftime() реализована для любой платформы, то иногда она может предлагать больше директив, чем перечислено. Но time.strptime() не зависит от платформы и не обязательно поддерживает все доступные директивы, которые не документированы как поддерживаемые.

Примеры использования:

>>> import time
>>> time.strptime("30 Nov 00", "%d %b %y")   
# time.struct_time(tm_year=2000, tm_mon=11, 
# tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, 
# tm_wday=3, tm_yday=335, tm_isdst=-1)

Разберем дату полученную из базы данных в формате 'YYYY-MM-DD'.

>>> import time
# Дату из базы мы получаем в таком формате:
>>> str_date = '2020-04-25'
>>> struct = time.strptime(str_date, '%Y-%m-%d')   
>>> struct
# time.struct_time(tm_year=2020, tm_mon=4, 
# tm_mday=25, tm_hour=0, tm_min=0, tm_sec=0,
# tm_wday=5, tm_yday=116, tm_isdst=-1)

# далее мы можем преобразовать структуру с секунды
>>> time.mktime(struct)
# 1587762000.0

# или преобразовать в привычную строку с датой
>>> time.strftime('%d.%m.%Y г.', struct) 
# '25.04.2020 г.'

Разберем расширенный формат даты 'YYYY-MM-DD HH:MM:SS' полученный из базы данных.

>>> import time
# Дату из базы мы получаем в таком формате:
>>> str_date = '2020-04-25 13:15:27'
>>> struct = time.strptime(str_date, '%Y-%m-%d %H:%M:%S')   
>>> struct
# time.struct_time(tm_year=2020, tm_mon=4, 
# tm_mday=25, tm_hour=13, tm_min=15, tm_sec=27,
# tm_wday=5, tm_yday=116, tm_isdst=-1)

# Преобразуем структуру в привычную строку с датой, для показа пользователю
>>> time.strftime('%H:%M - %d.%m.%Y г.', struct) 
# '13:15 - 25.04.2020 г.'