English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье вы узнаете, как создавать объекты datetime из строк (с помощью примеров).
Метод strptime() создает из заданной строкиdatetimeОбъект.
Внимание:Вы не можете создать объект datetime из каждой строки. Строка должна быть в определенном формате.
from datetime import datetime date_string = "21 Июнь, 2018" print("date_string =", date_string) print("date_string данные типа =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("date_object данные типа =", type(date_object))
При выполнении программы выводится:
date_string = 21 Июнь, 2018 date_string тип данных = <class 'str'> date_object = 2018-06-21 00:00:00 date_object тип данных = <class 'datetime.datetime'>
strptime() метод имеет два параметра:
Строка (будет преобразована в дату и время)
Код формата
В зависимости от используемого строки и кода формата, этот метод возвращает эквивалентный объект datetime.
В примере выше:
Здесь:
%d - обозначает день месяца.Пример: 01,02, ..., 31
%B - полное имя месяца.Например:Январь, Февраль и т.д.
%Y - год представляется четырьмя цифрами.Например: 2018, 2019 и т.д.
from datetime import datetime dt_string = "12/11/2019 09:15:32" # Дата в формате dd/mm/yyyy dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Дата в формате mm/dd/yyyy dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2)
При выполнении программы выводится:
dt_object1 = 2019-11-12 09:15:32 dt_object2 = 2019-12-11 09:15:32
Таблица显示了您可以使用的所有格式代码。
Инструкции | Значение | Пример |
%a | Аббревиатура дня недели. | Sun, Mon, ... |
%A | Полное имя дня недели. | Sunday, Monday, ... |
%w | Рабочий день в десятичном числе. | 0,1, ..., 6 |
%d | День месяца в десятичном числе, заполненном нулями. | 01,02, ..., 31 |
-%d | День месяца в десятичном числе. | 1,2, ..., 30 |
%b | Аббревиатура месяца. | Jan, Feb, ..., Dec |
%B | Полное имя месяца. | January, February, ... |
%m | Месяц в десятичном числе, заполненном нулями. | 01,02, ..., 12 |
-%m | Месяц в десятичном числе. | 1,2, ..., 12 |
%y | Год без столетия в десятичном числе, заполненном нулями. | 00,01, ..., 99 |
-%y | Год без столетия в десятичном числе. | 0,1, ..., 99 |
%Y | Год в десятичном числе, выраженный в столетиях. | 2013, 2019 и т.д. |
%H | Часы (24-часовой формат) в десятичном числе, заполненном нулями. | 00,01, ..., 23 |
-%H | Часы (24-часовой формат) в десятичном числе. | 0,1, ..., 23 |
%I | Часы (12-часовой формат) в десятичном числе, заполненном нулями. | 01,02, ..., 12 |
-%I | Часы (12-часовой формат) в десятичном числе. | 1 2 2 |
%p | Утро или послеобеденное время в контексте языка. | AM,PM |
%M | Минута, десятичное число, заполненное нулями. | 00, 01, ..., 59 |
%-M | Представленный десятичным числом. | 0, 1, ..., 59 |
%S | Второй десятичный номер с нулевыми заполнителями. | 00, 01, ..., 59 |
%-S | Второй десятичный номер. | 0, 1, ..., 59 |
%f | Микросекунды, десятичное число, заполненные нулями слева. | 000000-999999 |
%z | UTC смещение, формат + HHMM или - HHMM. | |
%Z | Название часового пояса. | |
%j | День года, представленный десятичным числом с нулевыми заполнителями. | 001, 002, ..., 366 |
%-j | День года, представленный десятичным числом. | 1, 2, ..., 366 |
%U | Недельный номер года (среда - первый день недели). Все дни до первого воскресенья в новом году считаются за 0 неделю. | 00, 01, ..., 53 |
%W | Недельный номер года (воскресенье - первый день недели). Все дни до первого воскресенья в новом году считаются за 0 неделю. | 00, 01, ..., 53 |
%c | Пример соответствующего даты и времени в языковой среде. | Mon Sep 30 07:06:05 2013 |
%x | Пример соответствующего даты в языковой среде. | 13/9/30 |
%X | Пример соответствующего времени в языковой среде. | 07:06:05 |
%% | Символ "%". | % |
Если переданные строке (первый параметр) и коду формата strptime() не соответствуют, то будет получена ошибка ValueError. Например:
from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object)
Если вы запустите этот程序, то появится ошибка.
ValueError: данные времени '12/11/2018' не соответствуют формату '%d %m %Y'
Рекомендованные для чтения: strftime() в Python