У овом чланку ћете научити како да креирате објекат датума и времена из низа (уз помоћ примера).
strptime()
Метод креира датетиме објекат из датог низа.
Напомена: Не можете створити datetime
објекат из сваког низа. Низ мора бити у одређеном формату.
Пример 1: стринг до објекта датетиме
from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) print("type of date_string =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("type of date_object =", type(date_object))
Када покренете програм, излаз ће бити:
дате_стринг = 21. јун 2018. врста дате_стринг = дате_објецт = 2018-06-21 00:00:00 врста дате_објецт =
Како стрптиме () ради?
strptime()
Метода класа има два аргумента:
- стринг (који треба претворити у датум и време)
- код формата
На основу употребљеног кода низа и формата, метода враћа свој еквивалентни datetime
објект.
У горњем примеру:
Ево,
%d
- Представља дан у месецу. Пример: 01, 02,…, 31%B
- Име месеца у потпуности. Пример: јануар, фебруар итд.%Y
- Година у четири цифре. Пример: 2018, 2019 итд.
Пример 2: стринг до објекта датетиме
from datetime import datetime dt_string = "12/11/2018 09:15:32" # Considering date is in dd/mm/yyyy format dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Considering date is in mm/dd/yyyy format dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2)
Када покренете програм, излаз ће бити:
дт_објецт1 = 2018-11-12 09:15:32 дт_објецт2 = 2018-12-11 09:15:32
Форматирање листе кодова
Табела испод приказује све кодове формата које можете користити.
Директива | Значење | Пример |
%a | Скраћени назив радног дана. | Нед, пон,… |
%A | Пуно име радног дана. | Недеља Понедељак,… |
%w | Радни дан као децимални број. | 0, 1,…, 6 |
%d | Дан у месецу као децимално обележен нулом. | 01, 02,…, 31 |
%-d | Дан у месецу као децимални број. | 1, 2,…, 30 |
%b | Скраћени назив месеца. | Јан, Феб,…, Дец |
%B | Име пуног месеца. | Јануар Фебруар,… |
%m | Месец као децимални број подпуњен нулом. | 01, 02,…, 12 |
%-m | Месец као децимални број. | 1, 2,…, 12 |
%y | Година без века као нултом подстављени децимални број. | 00, 01,…, 99 |
%-y | Година без века као децимални број. | 0, 1,…, 99 |
%Y | Година са веком као децималним бројем. | 2013, 2019 итд. |
%H | Сат (24-часовни сат) као децимални број подпуњен нулом. | 00, 01,…, 23 |
%-H | Сат (24-часовни сат) као децимални број. | 0, 1,…, 23 |
%I | Сат (12-часовни сат) као нултом подстављеном децималном броју. | 01, 02,…, 12 |
%-I | Сат (12-часовни сат) као децимални број. | 1, 2,… 12 |
%p | Локални АМ или ПМ. | АМ ПМ |
%M | Записник као нулта тачка децималног броја. | 00, 01,…, 59 |
%-M | Минута као децимални број. | 0, 1,…, 59 |
%S | Друго као децимални број подпуњен нулом. | 00, 01,…, 59 |
%-S | Друго као децимални број. | 0, 1,…, 59 |
%f | Микросекунда као децимални број, са нуле подстављена на левој страни. | 000000 - 999999 |
%z | УТЦ помак у облику + ХХММ или -ХХММ. | |
%Z | Назив временске зоне. | |
%j | Дан у години као децимални број подпуњен нулом. | 001, 002,…, 366 |
%-j | Дан у години као децимални број. | 1, 2,…, 366 |
%U | Број недеље у години (недеља као први дан у недељи). Сви дани у новој години која претходи првој недељи сматрају се недељом 0. | 00, 01,…, 53 |
%W | Број недеље у години (понедељак као први дан у недељи). Сви дани у новој години која претходи првом понедељку сматрају се недељом 0. | 00, 01,…, 53 |
%c | Локално представљање датума и времена. | Мон Сеп 30 07:06:05 2013 |
%x | Локално представљање одговарајућег датума. | 30.09.13 |
%X | Локално прикладно представљање времена. | 07:06:05 |
%% | Дословни знак '%'. | % |
ВалуеЕррор у стрптиме ()
Ако се низ (први аргумент) и код формата (други аргумент) прослеђени у strptime()
не подударају, добићете ValueError
. На пример:
from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object)
Ако покренете овај програм, добићете грешку.
ВалуеЕррор: подаци о времену '12 / 11/2018 'се не подударају са форматом'% д% м% И '
Препоручена читања: Питхон стрфтиме ()