import time time.strptime(string[, format])
time.struct_time
.Функция 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 г.'