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

Конвертировать строку в DateTime, используя Python Strptime ()

Таким образом, на сегодня мы собираемся обсудить, как мы преобразуем строку в DateTime, используя метод Python Strptime ().

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

Так что на сегодня мы собираемся обсудить Как превращаем строку в DateTime, используя метод Python Strptime () Отказ

Давайте начнем.

Метод Python Strptime ()

Python Strptime () Метод доступен в обоих datetime и время модули. Он используется для анализа заданной строки в объект DateTime или Time в соответствии с указанным Формат Отказ

Использование этой функции примерно одинаково для модулей, только различие в типе объекта возвращена. Позвольте нам посмотрите на синтаксис для его использования.

Для datetime Модуль, синтаксис для использования Strptime () Метод приведен ниже.

datetime.strptime(date_string, format)

Вышеуказанное утверждение возвращает datetime Объект, соответствующий date_string анализируется в соответствии с указанным форматом.

И для время Модуль, синтаксис для использования Strptime () довольно похоже.

time.strptime(string[, format])

Здесь метод делает ту же работу, просто здесь возвращенное значение – это struct_time Объект, возвращенный Gmtime () или Локальное время () Отказ

Для обоих случаев параметр формата использует те же директивы, что и используемые strftime () Как указано в таблице формата ниже. Формат Параметр должен быть строкой и имеет значение по умолчанию "% A% b% d% h:% m:% s% y" Отказ Если строка не может быть проанализирована в соответствии с данным форматом, или если он имеет избыточные данные после анализа, A ValueError Поднялся.

Формат таблицы

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

% А. среда Недели как полное имя локали.
% а. Пн, вт, ср. Недели как сокращенное имя локали.
% w. 0,1,2,3,4 … 6. Недели в качестве десятичного числа, где 0 – воскресенье и 6 суббота.
% D. 01,02,03 … 31. День месяца как нулевой десятичный номер.
% -D 1,2,3 … День месяца как десятичное число. (Конкретная платформа)
% B. Март Месяц как сокращенное имя локали.
% B. маршировать Месяц как полное имя локали.
% М. 01,02 … 12. Месяц как нулевой десятичный номер.
% -m. 1,2, … 12 Месяц как десятичное число. (Конкретная платформа)
% Y. 20 (на 2020) Год без века как нулевой десятичный номер.
% Y. 2020, 2021 и др. Год с веком как десятичное число.
%ЧАС 01, 02, … Час (24-часовые часы) в качестве нулевого десятичного числа.
%-ЧАС 1,2,3, … Час (круглосуточная часа) как десятичное число. (Конкретная платформа)
01, 02, 03, … Час (12-часовые часы) в качестве нулевого десятичного числа.
%-Я 1, 2, 3 … Час (12-часовые часы) как десятичное число. (Конкретная платформа)
%п ДО ПОЛУДНЯ ПОСЛЕ ПОЛУДНЯ Эквивалент локалии либо AM или PM.
% М. 01, 02, … 59 Минута в качестве нулевого десятичного числа.
% -M. 1,2,3, … 59 Минута как десятичное число. (Конкретная платформа)
% S. 01, 02, … 59 Второе как нулевое десятичное число.
% -А. 1, 2, … 59 Во-вторых, как десятичное число. (Конкретная платформа)
% f. 000000 Microcond в качестве десятичного числа, нулевой навесной слева.
% Z. (пусто), +0000, -0400, +1030 Смещение UTC в виде + HHMM или -HHMM (пустая строка, если объект наивен).
% Z. (пустой), UTC, IST, CST Имя часового пояса (пустая строка, если объект наивен).
% j 1, 2, 3, … 366 День года как нулевой десятичный номер.
% -J. 1, 2, 3, … 366 День года как десятичное число. (Конкретная платформа)
% U. 1, 2, 3, … 53 Неделя номер года (воскресенье как первый день недели) как нулевое мягкое десятичное число. Все дни в новом году, предшествующим первым воскресенье, считаются в неделю 0.
% W. 1, 2, 3, … 53 Неделю номер года (понедельник как первый день недели) как десятичное число. Все дни в новом году, предшествующим первым понедельник, считаются в неделю 0.
% C. Ср 06 12:23:56 2020 Соответствующее представление о дате и времени Локали.
%Икс 05/06/20 Соответствующее представление о дате имени Локалии.
%ИКС 12:23:56. Соответствующее время свободного времени.
%% % Буквальный «%» характер.

Работа с методом Strptime ()

Так что теперь, когда мы знакомы с синтаксисом использования Strptime () Способ для модулей TimeTime и Time, давайте посмотрим, как мы можем его использовать.

1. Time.Strptime ()

В приведенном ниже примере мы собираемся преобразовать заданную строку в время объект.

import time

time_string = "06/05/2020 12:06:58"

obj = time.strptime(time_string, "%d/%m/%Y %H:%M:%S")

print(type(obj))
print(obj)

#parsing using default formatting: %a %b %d %H:%M:%S %Y

def_obj = time.strptime("Wed May 06 12:06:58 2020")
print(def_obj)

Выход:


time.struct_time(tm_year=2020, tm_mon=5, tm_mday=6, tm_hour=12, tm_min=6, tm_sec=58, tm_wday=2, tm_yday=127, tm_isdst=-1)
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=6, tm_hour=12, tm_min=6, tm_sec=58, tm_wday=2, tm_yday=127, tm_isdst=-1)

Здесь time_string это данная строка, содержащая соответствующие параметры времени. Мы разбираем эту строку с помощью функции Strptime () после “% d/% м/% y% h:% m:% s” Формат в переменную obj Отказ Как и ожидалось, Obj имеет тип time.struct_time Отказ

Оменно мы также проанализировали еще одну строку, используя форматирование по умолчанию (без указания параметра формата). Как упоминалось ранее в этом случае по умолчанию формат установлен на % A% b% d% h:% m:% s% y Отказ Это оправдывает вывод.

2. DateTime.Strptime ()

Теперь будем использовать Strptime () Способ преобразования заданной строки в datetime объект.

from datetime import datetime

dt_string = "06//05//2020 12:06:58"

obj = datetime.strptime(dt_string, "%d//%m//%Y %H:%M:%S")

print(type(obj))
print("DateTime object: ", obj)
print("Time object: ", obj.time())
print("Date object: ", obj.date())

Выход:

Strptime вывод

Как вы можете видеть с выхода выше, dt_string успешно преобразуется в datetime объект. Мы также можем использовать Время () и Дата () функционирует над этим объектом, чтобы получить datetime.time и datetime.date объекты соответственно.

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

from datetime import datetime

dt_string = str(input("Enter date in dd:mm:yyyy format:"))

try:
    obj = datetime.strptime(dt_string, "%d:%m:%Y")
    print(obj)
    print(obj.strftime("Date:%d Month:%m Year:%Y")) #strftime to format datetime obj
except ValueError as ex:
    print("ValueError: ", ex)

Выход:

Strptime Valuearror

В этом примере мы берем dt_string как пользовательский ввод и преобразовать его в объект dateTime, используя Strptime () метод. Снова мы принимаем этот объект и распечатайте, это наш желаемый формат, используя strftime () метод.

Что если мы не предоставим метод STRPTIME () строка, которая соответствует указанному формату? В этом случае A ValueError Поднялся. Посмотрите на выход ниже (для того же кода), где мы это делаем.

Enter date in dd:mm:yyyy format:6/5/20
ValueError:  time data '6/5/20' does not match format '%d:%m:%Y'

Суммирование

Итак, мы сегодня узнали о преобразовании строки в различные типы в Python, используя Strptime () метод.

Для любых дополнительных вопросов, связанных с темой, не стесняйтесь использовать комментарии ниже.

Рекомендации