Как конвертировать строку в дату на Python

В этом учебнике рассказывается о том, как конвертировать строки
в датированное время
на Python, а также приводятся некоторые примеры кодов, охватывающих популярные форматы datetime
string
.
datetime.strptime()
для преобразования строки в дату времени
В предыдущем уроке мы узнали как получить дату в строковом формате с помощью метода datetime.strftime()
. Для получения объекта datetime
мы будем использовать метод datetime.strptime()
для преобразования revere. f
и p
в этих двух методах означают format
и parse
соответственно.
Метод datetime.strptime()
анализирует входную строку с заданным форматом datetime
и возвращает объект datetime
.
Ниже приведен базовый пример использования этого метода strptime()
,
from datetime import datetime
datetime.strptime("2018-01-31", "%Y-%m-%d")
Результатом будет
datetime.datetime(2018, 1, 31, 0, 0)
Директивы кодов формата строк приведены здесь для справки.
Директива | Значение | Пример |
---|---|---|
%a |
День недели, как сокращенное название Местечка. | Sun, Mon, …, Sat (en_US);So, Mo, …, Sa (de_DE) |
%A |
В будний день, как полное название местности. | Воскресенье, понедельник, …, суббота (en_US);Соннтаг, Монтаг, …, Самстаг (de_DE) |
%w |
День недели в виде десятичного числа, где 0 - воскресенье и 6 - суббота. | 0, 1, …, 6 |
%d |
День месяца в виде десятичного числа с нулевым знаком. | 01, 02, …, 31 |
%b |
Месяц, как сокращенное название местности. | Jan, Feb, …, Dec (en_US);Jan, Feb, …, Dez (de_DE) |
%B |
Месяц, как полное название местности. | Январь, февраль, …, декабрь (en_US); Януар, февраль, …, Дезембер (de_DE). |
%m |
Месяц в виде десятичного числа с нулевым знаком. | 01, 02, …, 12 |
%y |
Год без столетия в виде десятичного числа с нулевым знаком. | 00, 01, …, 99 |
%Y |
Год с веком в качестве десятичного числа. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 |
%H |
Час (24-часовой) в виде десятичного числа с нулевым подстановочным знаком. | 00, 01, …, 23 |
%I |
Час (12-часовой) в качестве десятичного числа с нулевым подстановочным знаком. | 01, 02, …, 12 |
%p |
Локальный эквивалент либо АМ, либо ПМ. | AM, PM (en_US); am, pm (de_DE). |
%M |
Минута в виде десятичного числа с нулевым знаком. | 00, 01, …, 59 |
%S |
Второе в качестве десятичного числа с нулевым знаком. | 00, 01, …, 59 |
%f |
Микросекунда в качестве десятичного числа, с нулевой накладкой слева. | 000000, 000001, …, 999999 |
%z |
UTC-смещение в виде ±HHMM[SS] (пустая строка, если объект наивен). | (пустая), +0000, -0400, +1030. |
%Z |
Имя часового пояса (пустая строка, если объект наивен). | (пустая), UTC, EST, CST. |
%j |
День года в виде десятичного числа с нулевым знаком. | 001, 002, …, 366 |
%U |
Номер недели года (воскресенье как первый день недели) в виде десятичного числа с нулевой подстановкой. Все дни в новом году, предшествующие первому воскресенью, считаются в неделю 0. | 00, 01, …, 53 |
%W |
Номер недели года (понедельник как первый день недели) в виде десятичного числа. Все дни в новом году, предшествующие первому понедельнику, считаются в нулевой неделе. | 00, 01, …, 53 |
%c |
Местное представительство по дате и времени. | Tue Aug 16 21:30:00 1988 (en_US);Di 16 Aug 21:30:00 1988 (de_DE) |
%x |
Соответствующая дата представительства Локала. | 08/16/88 (нет);08/16/1988 (en_US);16.08.1988 (de_DE). |
%X |
Соответствующее временное представительство Локала. | 21:30:00 (en_US);21:30:00 (de_DE) |
%% |
Буквальный ‘’%’’ персонаж. | % |
Python datetime.strptime()
Примеры
Формат 7-Маy-2013
from datetime import datetime
dateString = "7-May-2018"
dateFormatter = "%u-%b-%Y"
datetime.strptime(dateString, dateFormatter)
Выход
datetime.datetime(2013, 5, 1, 0, 0)
31/12/2018
Формат
from datetime import datetime
dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)
Выход
datetime.datetime(2013, 12, 31, 0, 0)
Mon, July 16 2018
Формат
from datetime import datetime
dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)
Выход
datetime.datetime(2018, 7, 16, 0, 0)
П Monday, July 16, 2018 20:01:56
Формат
from datetime import datetime
dateString = "Monday, July 16, 2018 20:01:56"
dateFormatter = "%A, %B %d, %Y %H:%M:%S"
datetime.strptime(dateString, dateFormatter)
Выход:
datetime.datetime(2018, 7, 16, 20, 1, 56)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedInСопутствующая статья - Python String
- Как проверить, что строка пуста в Python
- Как удалить белый пробел в строке на Python
- Как преобразовать строку в нижний кейс на Python 2 и 3
- Как проверить, содержит ли струна подвеску на Python
- Как преобразовать список в струну на Python
Сопутствующая статья - Python DateTime
- Как преобразовать столбец DataFrame в дату в Pandas
- Как получить текущее время на Python
- Вычислить разницу во времени между двумя временными строками в Python