Рубрики
Без рубрики

Python String к DateTime – Strptime ()

Python String to DateTime, Python Strptime () Функция, Python Конвертируйте строку на сегодняшний день, строка Python на сегодняшний день, Strptime Python Strptime (), строка анализа на сегодняшний день.

Автор оригинала: Pankaj Kumar.

Мы можем преобразовать строку в DateTime, используя Strptime () функция. Эта функция доступна в datetime и время Модули для анализа строки к объектам DateTime и Time соответственно.

Python Strptime ()

Python Strptime () – это метод класса в классе DateTime. Его синтаксис:

datetime.strptime(date_string, format)

Оба аргумента являются обязательными и должны быть строки. Эта функция точно противоположная функции strftime (), которая преобразует объект dateTime в строку.

У нас есть аналогичная функция, доступная во время модуля Time, где его синтаксис:

time.strptime(time_string[, format])

Здесь функция возвращает struct_time объект. Если строка формата не предоставлена, по умолчанию по умолчанию используется «% A% b% d% h:% m:% s% y», что соответствует форматированию, возвращаемому функцией Cime ().

Если входная строка не может быть проанализирована в соответствии с приведенным форматом, то ValueError Поднялся. Сообщение об исключении предоставляет четкие детали о проблеме в разборе.

Директивы формата Python Strptime ()

В следующей таблице содержится большинство часто используемых директив формата.

% а. Недели как сокращенное имя локали. Солнце, пн, …, сел (en_us) Итак, мо, …, SA (de_de)
% А. Недели как полное имя локали. Воскресенье, понедельник, …, суббота (EN_US) Sonntag, Montag, …, Samstag (De_de)
% w. Недели в качестве десятичного числа, где 0 – воскресенье и 6 суббота. 0, 1, 2, 3, 4, 5, 6
% D. День месяца как нулевой десятичный номер. 01, 02, …, 31
% B. Месяц как сокращенное имя локали. Ян, Фев, …, Дека (EN_US) Ян, Фев, …, Дез (de_de)
% B. Месяц как полное имя локали. Январь, февраль, …, декабрь (en_us) januar, februar, …, dezember (de_de)
% М. Месяц как нулевой десятичный номер. 01, 02 … 12
% Y. Год без века как нулевой десятичный номер. 01, 02, … 99
% Y. Год с веком как десятичное число. 0001, 0002, …, 9999
%ЧАС Час (24-часовые часы) в качестве нулевого десятичного числа. 01, 02, …, 23
Час (12-часовые часы) в качестве нулевого десятичного числа. 01, 02, …, 12
%п Эквивалент локалии либо AM или PM. AM, PM (EN_US) AM, PM (de_de)
% М. Минута в качестве нулевого десятичного числа. 01, 02, …, 59
% S. Второе как нулевое десятичное число. 01, 02, …, 59
% f. Microcond в качестве десятичного числа, нулевой навесной слева. 000000, 000001, …, 999999 Не применимо со временем модуль.
% Z. Смещение UTC в виде ± HHMM [SS] (пустая строка, если объект наивен). (пусто), +0000, -0400, +1030
% Z. Имя часового пояса (пустая строка, если объект наивен). (пустой), UTC, IST, CST
% j День года как нулевой десятичный номер. 001, 002, …, 366
% U. Неделя номер года (воскресенье как первый день недели) как нулевое мягкое десятичное число. Все дни в новом году, предшествующим первым воскресенье, считаются в неделю 0. 00, 01, …, 53
% W. Неделю номер года (понедельник как первый день недели) как десятичное число. Все дни в новом году, предшествующим первым понедельник, считаются в неделю 0. 00, 01, …, 53
% C. Соответствующее представление о дате и времени Локали. TEUG 16 21:30:00 1988 (EN_US) DI 16 августа 21:30:00 1988 (de_de)
%Икс Соответствующее представление о дате имени Локалии. 08/16/88 (нет) 08/16/1988 (en_us) 16.08.1988 (de_de)
%ИКС Соответствующее время свободного времени. 21:30:00 (en_us) 21:30:00 (de_de)
%% Буквальный «%» характер. %

Примеры Python Strptime ()

Давайте посмотрим на некоторые конкретные примеры функции Strptime () для преобразования строки в объекты DateTime и Time.

Строка в dateTime.

from datetime import datetime

datetime_str = '09/19/18 13:55:26'

datetime_object = datetime.strptime(datetime_str, '%m/%d/%y %H:%M:%S')

print(type(datetime_object))
print(datetime_object)  # printed in default format

Выход:


2018-09-19 13:55:26

Строка на сегодняшний день

Мы можем использовать функцию даты (), а также функцию Strptime () для преобразования объекта String на сегодняшний день.

date_str = '09-19-2018'

date_object = datetime.strptime(date_str, '%m-%d-%Y').date()
print(type(date_object))
print(date_object)  # printed in default formatting

Выход:


2018-09-19

Строка к объекту времени

Мы можем использовать функцию времени () наряду с функцией StrPTIME () для преобразования string к объекту времени.

time_str = '13::55::26'
time_object = datetime.strptime(time_str, '%H::%M::%S').time()
print(type(time_object))
print(time_object)

Выход:


13:55:26

Пример Python Time Strptime ()

Давайте посмотрим некоторые примеры использования функции Module Module Brttime ().

import time

time_obj = time.strptime(time_str, '%H::%M::%S')
print(type(time_obj))
print(time_obj)

# default formatting - "%a %b %d %H:%M:%S %Y"
print(time.strptime('Wed Sep 19 14:55:02 2018'))

Выход:


time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=13, tm_min=55, tm_sec=26, tm_wday=0, tm_yday=1, tm_isdst=-1)
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=19, tm_hour=14, tm_min=55, tm_sec=2, tm_wday=2, tm_yday=262, tm_isdst=-1)

Python Strptime () Пример ValueError

Мы можем использовать Try-Block, чтобы поймать исключение на анализ и выполнять корректирующие действия.

datetime_str = '09/19/18 13:55:26'

try:
    datetime_object = datetime.strptime(datetime_str, '%m/%d/%y')
except ValueError as ve:
    print('ValueError Raised:', ve)

time_str = '99::55::26'

try:
    time_object = time.strptime(time_str, '%H::%M::%S')
except ValueError as e:
    print('ValueError:', e)

Выход:

ValueError Raised: unconverted data remains:  13:55:26
ValueError: time data '99::55::26' does not match format '%H::%M::%S'

Обратите внимание, что сообщение ValueError четко объясняет корневую причину исключения анализа.

Python преобразует строку в DateTime с локалом

Давайте посмотрим на пример, где локальная строка будет преобразована в объект dateTime. Мы будем использовать модуль Locale для установки локали для использования Python.

import locale

locale.setlocale(locale.LC_ALL, 'de_DE')
date_str_de_DE = '10-Dezember-2018 Montag'  # de_DE locale
datetime_object = datetime.strptime(date_str_de_DE, '%d-%B-%Y %A')
print(datetime_object)

Выход: 2018-12-10 00:00:00

Ссылки: DateTime Strptime () , время Strptime ()