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

Jinku Hu 30 Январь 2023 18 Апрель 2020
  1. datetime.strptime() для преобразования строки в дату времени
  2. Python datetime.strptime() Примеры
Как конвертировать строку в дату на 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)
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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 DateTime