strptime() je další metoda dostupná v DateTime, která se používá k formátování časového razítka, které je ve formátu řetězce na objekt datum-čas.
Syntax : datetime.strptime(time_data, format_data)
Parametr:
- time_data je čas přítomný ve formátu řetězce
- format_data jsou data ve formátu datetime, která jsou převedena z time_data pomocí této funkce.
Jak funguje strptime()?
Tato funkce vyžaduje dva argumenty, řetězec, ve kterém je uveden určitý čas, a kód formátu, aby se řetězec změnil, řetězec se změní na objekt DateTime podle seznamu kódů uvedených níže.
Formátovat kódy
| formátovací kód | význam | příklad |
|---|---|---|
| %A | Zkrácený název dne v týdnu | Slunce, můj |
| %A | Celý název dne v týdnu | Neděle pondělí |
| %V | Den v týdnu jako desetinné číslo | 0…6 |
| %d | Den v měsíci jako desetinné místo s nulou | 01, 02 |
| %-d | den v měsíci jako desetinné číslo | 1, 2.. |
| %b | Zkrácený název měsíce | Jan, únor |
| % m | měsíc jako desetinné číslo vyplněné nulou | 01, 02 |
| %-m | měsíc jako desetinné číslo | 1, 2 |
| %B | Název celého měsíce | Leden únor |
| %a | rok bez století jako nulové desetinné číslo | 99,00 |
| %-a | rok bez století jako desetinné číslo | 0,99 |
| %A | rok se stoletím jako desetinným číslem | 2000, 1999 |
| %H | hodinu (24hodinový formát) jako desetinné číslo vyplněné nulou | 01, 23 |
| %-H | hodinu (24 hodin) jako desetinné číslo | 1, 23 |
| %I | hodinu (12 hodin) jako desetinné číslo vyplněné nulou | 01, 12 |
| %-I | hodinu (12 hodin) jako desetinné číslo | 1, 12 |
| %p | místního AM nebo PM | DOPOLEDNE ODPOLEDNE |
| %M | Minuta jako desetinné číslo doplněné nulou | 01, 59 |
| %-M | Minuta jako desetinné číslo | 1, 59 |
| %S | Za druhé jako nulou vyplněné desetinné číslo | 01, 59 |
| %-S | Druhé jako desetinné číslo | 1, 59 |
| %F | mikrosekundu jako desetinné číslo, na levé straně doplněno nulou | 000000, 999999 |
| %S | Posun UTC ve tvaru +HHMM nebo -HHMM | |
| %S | Název časového pásma | |
| %j | den v roce jako desetinné číslo vyplněné nulou | 001, 365 |
| %-j | den v roce jako desetinné číslo | 1,365 |
| %V | Číslo týdne v roce (neděle je první) | 0, 6 |
| %V | Číslo týdne v roce | 00, 53 |
| %C | odpovídající reprezentaci data a času národního prostředí | Po 30. září 07:06:05 2013 |
| %X | reprezentace příslušného data národního prostředí | 30. 11. 98 |
| %X | vhodnou časovou reprezentaci lokality | 10:03:43 |
| %% | Doslovný znak „%“. | % |
Příklad 1: Python program pro čtení datetime a získání všech časových dat pomocí strptime. Zde vezmeme časová data ve formátu řetězce a budeme extrahovat hodiny, minuty, sekundy a milisekundy
Python3
# import datetime module from datetime> from> datetime>import> datetime> # consider the time stamp in string format> # DD/MM/YY H:M:S.micros> time_data>=> '25/05/99 02:35:5.523'> # format the string in the given format :> # day/month/year hours/minutes/seconds-micro> # seconds> format_data>=> '%d/%m/%y %H:%M:%S.%f'> # Using strptime with datetime we will format> # string into datetime> date>=> datetime.strptime(time_data, format_data)> # display milli second> print>(date.microsecond)> # display hour> print>(date.hour)> # display minute> print>(date.minute)> # display second> print>(date.second)> # display date> print>(date)> |
>
>
Výstup:
523 000
2
35
5
1999-05-25 02:35:05.523000
Příklad 2: Python kód, který používá strptime. Zde vezmeme časová data ve formátu řetězce a extrahujeme časovou značku ve formátu %d/%m/%y %H:%M:%S.%f.
Python3
# import datetime module from datetime> from> datetime>import> datetime> # consider the time stamps from a list in string> # format DD/MM/YY H:M:S.micros> time_data>=> [>'25/05/99 02:35:8.023'>,>'26/05/99 12:45:0.003'>,> >'27/05/99 07:35:5.523'>,>'28/05/99 05:15:55.523'>]> # format the string in the given format : day/month/year> # hours/minutes/seconds-micro seconds> format_data>=> '%d/%m/%y %H:%M:%S.%f'> # Using strptime with datetime we will format string> # into datetime> for> i>in> time_data:> >print>(datetime.strptime(i, format_data))> |
>
>
Výstup:
1999-05-25 02:35:08.023000
1999-05-26 12:45:00.003000
1999-05-27 07:35:05.523000
1999-05-28 05:15:55.523000
můžeme získat čas, který následuje po struktuře se všemi daty, pomocí samotné strptime().
Syntax :
time.strptime(Časové razítko, ‘%d/%m/%y %H:%M:%S’)
kde Časové razítko obsahuje čas a datum
Příklad : Kód Pythonu pro získání času ve struktuře:
Python3
#import time> import> time> # get data of 4 th april 2021 at time 9 pm> print>(time.strptime(>'04/04/21 09:31:22'>,>'%d/%m/%y %H:%M:%S'>))> # get data of 5 th april 2021 at time 9 pm> print>(time.strptime(>'05/04/21 09:00:42'>,>'%d/%m/%y %H:%M:%S'>))> # get data of 6 th april 2021 at time 9 pm> print>(time.strptime(>'06/04/21 09:11:42'>,>'%d/%m/%y %H:%M:%S'>))> # get data of 7 th april 2021 at time 9 pm> print>(time.strptime(>'07/04/21 09:41:12'>,>'%d/%m/%y %H:%M:%S'>))> |
>
>
Výstup:
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=4, tm_hour=9, tm_min=31, tm_sec=22, tm_wday=6, tm_yday=94, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=5, tm_hour=9, tm_min=0, tm_sec=42, tm_wday=0, tm_yday=95, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=6, tm_hour=9, tm_min=11, tm_sec=42, tm_wday=1, tm_yday=96, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=7, tm_hour=9, tm_min=41, tm_sec=12, tm_wday=2, tm_yday=97, tm_isdst=-1)
Je také možné získat řetězec datetime ve formátu yyyy-mm-dd datetime. yyyy-mm-dd znamená rok-měsíc-den. Formát řetězce můžeme převést na DateTime pomocí funkce strptime(). Použijeme formát ‚%Y/%m/%d‘, abychom dostali řetězec na datum a čas.
Syntax: datetime.datetime.strptime(vstup,formát)
Parametr:
- vstup je řetězec datetime
- formát je formát – „yyyy-mm-dd“
- datetime je modul
Nejprve se naimportuje modul a zadá se vstupní řetězec DateTime. Nyní použijte strptime k získání požadovaného formátu a získání data z DateTime pomocí funkce date().
Příklad 1 : Program Python pro převod formátu řetězce datetime na datetime
Python3
# import the datetime module> import> datetime> # datetime in string format for may 25 1999> input> => '2021/05/25'> # format> format> => '%Y/%m/%d'> # convert from string format to datetime format> datetime>=> datetime.datetime.strptime(>input>,>format>)> # get the date from the datetime using date()> # function> print>(datetime.date())> |
>
>
Výstup:
2021-05-25
Příklad 2: Převést seznam řetězce datetime na datetime
Python3
# import the datetime module> import> datetime> # datetime in string format for list of dates> input> => [>'2021/05/25'>,>'2020/05/25'>,>'2019/02/15'>,>'1999/02/4'>]> # format> format> => '%Y/%m/%d'> for> i>in> input>:> > ># convert from string format to datetime format> ># and get the date> >print>(datetime.datetime.strptime(i,>format>).date())> |
>
>
Výstup:
2021-05-25
2020-05-25
2019-02-15
1999-02-04
Můžeme také zobrazit DateTime v %d/%m/%Y %H:%M:%S Formát. Za tímto účelem získáme data ve formátu datum-měsíc-rok hodiny:minuty;sekundy. Musíme tedy vzít vstupní řetězec datetime a získat tento formát
Syntax: datetime.strptime(vstupní_datum, %d/%m/%Y %H:%M:%S)
Parametr:
výjimka hodit java
- datetime je modul
- input_date je formát řetězce datum a čas
- strptime se používá k převodu řetězce input_date na datum a čas
Příklad 3: Program Python pro získání řetězce datetime do formátu %d/%m/%Y %H:%M:%S
Python3
#import datetime> from> datetime>import> datetime> # consider the datetime string in dd/mm/yyyy> # hh:mm:ss format> date>=> '25/05/2021 02:35:15'> # convert string datetime to dd/mm/yyyy hh:mm:ss> # format> datetime_date>=> datetime.strptime(date,>'%d/%m/%Y %H:%M:%S'>)> print>(datetime_date)> |
>
>
Výstup:
25.05.2021 02:35:15