Чтобы преобразовать строку в дату и время (в объект datetime) в Python, вы можете использовать метод datetime.strptime() из модуля datetime. Метод strptime() принимает аргумент, в котором вы можете указать date_string и формат, и возвращает строковое представление даты/времени в объект datetime.
- Синтаксис
- Параметры
- Пример 1: использование метода strptime()
- Пример 2: преобразование с помощью dateutil
- Преобразование строки в различные объекты даты и времени
- В объект datetime.datetime()
- Преобразование строки в объект datetime.date()
- В объект datetime.time()
- В объект datetime.datetime() с помощью Locale
- Заключение
Синтаксис
|
1 |
datetime.strptime(date_string, format) |
Параметры
Функция strptime() принимает обязательные аргументы и должна быть строкой. Функция strptime() является полной противоположностью strftime(), которая преобразует объект datetime в строку.
Пример 1: использование метода strptime()
|
1 2 3 4 5 6 7 8 |
from datetime import datetime dt_str = '27/10/20 05:23:20' dt_obj = datetime.strptime(dt_str, '%d/%m/%y %H:%M:%S') print("The type of the date is now", type(dt_obj)) print("The date is", dt_obj) |
Выход
|
1 2 |
The type of the date is now <class 'datetime.datetime'> The date is 2020-10-27 05:23:20 |
Datetime.strptime() — это общий метод для разбора строк в дату и время. Он может обрабатывать все виды форматов, причем формат определяется заданной строкой формата.
Пример 2: преобразование с помощью dateutil
Библиотека dateutil предоставляет анализатор, который можно использовать для преобразования строк в объекты даты и времени. Функция dateutil.parser.parse() принимает строку, представляющую дату и время, и возвращает объект datetime.
Dateutil можно установить из PyPI с помощью менеджера пакетов pip.
Импортируйте пакет dateutil и используйте модуль парсера для преобразования строки в дату и время.
|
1 2 3 4 5 6 7 8 |
from dateutil import parser dt_str = '27/10/20 05:23:20' dt_obj = parser.parse(dt_str) print("The type of the date is now", type(dt_obj)) print("The date is", dt_obj) |
Выход
|
1 2 |
The type of the date is now <class 'datetime.datetime'> The date is 2020-10-27 05:23:20 |
Преобразование строки в различные объекты даты и времени
В объект datetime.datetime()
Используйте метод datetime.strptime() для преобразования строки в объект datetime.datetime() в Python.
|
1 2 3 4 5 |
from datetime import datetime date_string = "2023-01-20 19:27:56" datetime_object = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S") print(datetime_object) |
Выход
|
1 |
2023-01-20 19:27:56 |
Функция datetime.strptime() преобразует строку в объект даты и времени.
Второй параметр, передаваемый методу strptime(), — это строка формата, определяющая формат ожидаемой входной строки.
В нашем примере строка формата — «%Y-%m-%d %H:%M:%S», что соответствует формату переменной date_string.
Преобразование строки в объект datetime.date()
Чтобы преобразовать строку в объект datetime.date(), используйте метод datetime.strptime() и примените функцию .date() к результату функции .strptime().
|
1 2 3 4 5 |
from datetime import datetime date_string = "2023-01-20" date_object = datetime.strptime(date_string, "%Y-%m-%d").date() print(date_object) |
Выход
|
1 |
2023-01-20 |
Функция datetime.strptime() преобразует эту строку в объект даты и времени.
Метод date() извлекает дату из объекта datetime.
В объект datetime.time()
Чтобы преобразовать строку в объект datetime.time(), используйте метод datetime.strptime() и примените функцию .time() к результату функции .strptime().
|
1 2 3 4 5 |
from datetime import datetime time_string = "19:39:50" time_object = datetime.strptime(time_string, "%H:%M:%S").time() print(time_object) |
Выход
|
1 |
19:39:50 |
Функция datetime.strptime() преобразует строку в объект даты и времени.
Метод time() извлекает время из объекта datetime.
В объект datetime.datetime() с помощью Locale
Чтобы установить Locale в Python, импортируйте пакет в свою программу, а затем используйте метод locale.setlocale() для установки локали.
|
1 2 3 4 5 6 7 |
import locale from datetime import datetime locale.setlocale(locale.LC_ALL, 'es_ES') date_str_es = '27-Octubre-2020' # es_ES locale datetime_object = datetime.strptime(date_str_es, '%d-%B-%Y') print(datetime_object) |
Выход
|
1 |
2020-10-27 00:00:00 |
Заключение
Используя функцию strptime(), вы можете преобразовать строку в дату и время в Python. Этот метод принимает входную строку, форматирует ее как аргументы и возвращает строковое представление даты/времени в объект datetime. Читайте также метод преобразования даты и времени в строку в Python.
