strptime() és un altre mètode disponible a DateTime que s'utilitza per formatar la marca de temps que està en format de cadena a l'objecte data-hora.
Sintaxi : datetime.strptime(time_data, format_data)
Paràmetre:
- time_data és l'hora present en format de cadena
- format_data són les dades presents en format datatime que es converteixen de time_data mitjançant aquesta funció.
Com funciona strptime()?
Aquesta funció pren dos arguments, una cadena en la qual es dóna un temps i un codi de format, per canviar la cadena, la cadena es canvia a l'objecte DateTime segons la llista de codis que es mostra a continuació.
Format de codis
| codi de format | significat | exemple |
|---|---|---|
| %a | Nom abreujat del dia feiner | Sol, meu |
| %A | Nom complet del dia feiner | Diumenge dilluns |
| % En | Dia de la setmana com a nombre decimal | 0…6 |
| %d | El dia del mes com a decimal amb zero | 01, 02 |
| %-d | dia del mes com a nombre decimal | 1, 2.. |
| %b | Nom del mes abreujat | Gener, Febrer |
| %m | mes com a nombre decimal encoixinat zero | 01, 02 |
| %-m | mes com a nombre decimal | 1, 2 |
| %B | Nom del mes complet | Gener Febrer |
| %y | any sense segle com a nombre decimal encoixinat amb zero | 99, 00 |
| %-y | any sense segle com a nombre decimal | 0, 99 |
| %Y | any amb el segle com a nombre decimal | 2000, 1999 |
| %H | hora (rellotge de 24 hores) com a nombre decimal encoixinat amb zero | 01, 23 |
| %-H | hora (rellotge de 24 hores) com a nombre decimal | 1, 23 |
| %I | hora (rellotge de 12 hores) com a nombre decimal encoixinat amb zero | 01, 12 |
| %-I | hora (rellotge de 12 hores) com a nombre decimal | 1, 12 |
| %p | AM o PM de la localització | AM PM |
| %M | Minut com a nombre decimal encoixinat amb zero | 01, 59 |
| %-M | El minut com a nombre decimal | 1, 59 |
| %S | Segon com a nombre decimal encoixinat amb zero | 01, 59 |
| %-S | Segon com a nombre decimal | 1, 59 |
| %f | microsegon com a nombre decimal, zero encoixinat al costat esquerre | 000000, 999999 |
| % Amb | Desplaçament UTC en forma +HHMM o -HHMM | |
| % AMB | Nom de la zona horària | |
| %j | dia de l'any com a nombre decimal encoixinat amb zero | 001, 365 |
| %-j | dia de l'any com a nombre decimal | 1, 365 |
| %IN | Número de setmana de l'any (el diumenge és el primer) | 0, 6 |
| %IN | Número de setmana de l'any | 00, 53 |
| %c | la representació adequada de data i hora de la localització | Dl, 30 de setembre 07:06:05 2013 |
| %x | la representació de data adequada de la localització | 11/30/98 |
| %X | la representació temporal adequada de la localització | 10:03:43 |
| %% | Un caràcter '%' literal | % |
Exemple 1: Programa Python per llegir datetime i obtenir totes les dades de l'hora mitjançant strptime. Aquí agafarem dades de temps en format de cadena i extreurem hores, minuts, segons i mil·lisegons
Python 3
# 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)> |
>
bash for loop
>
Sortida:
523000
2
35
5
1999-05-25 02:35:05.523000
Exemple 2: Codi Python que utilitza strptime. Aquí agafarem dades de temps en format de cadena i extreurem la marca de temps en format %d/%m/%y %H:%M:%S.%f.
Python 3
# 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))> |
>
>
Sortida:
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
podem obtenir el temps que segueix una estructura amb totes les dates utilitzant el mateix strptime().
Sintaxi :
time.strptime(Marca de temps, '%d/%m/%y %H:%M:%S')
on la marca de temps inclou l'hora i la data
Exemple : codi Python per obtenir el temps a l'estructura:
Python 3
#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'>))> |
>
>
Sortida:
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)
També és possible obtenir la cadena datetime en format aaaa-mm-dd datatime. aaaa-mm-dd significa any-mes-dia. Podem convertir el format de cadena a DateTime utilitzant la funció strptime(). Utilitzarem el format '%Y/%m/%d' per fer que la cadena arribi a la data i l'hora.
Sintaxi: datetime.datetime.strptime (entrada, format)
Paràmetre:
- l'entrada és la cadena datetime
- format és el format: 'aaaa-mm-dd'
- datetime és el mòdul
Per a això primer, s'importa el mòdul i es dóna la cadena d'entrada DateTime. Ara feu servir strptime per obtenir el format necessari i obtenir la data de DateTime mitjançant la funció date().
Exemple 1 : Programa Python per convertir el format de data i hora de cadena a data i hora
Python 3
# 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())> |
>
>
Sortida:
2021-05-25
Exemple 2: Converteix la llista de cadenes datetime a datetime
Python 3
# 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())> |
>
>
Sortida:
2021-05-25
2020-05-25
2019-02-15
1999-02-04
També podem mostrar DateTime a %d/%m/%Y %H:%M:%S Format. Per a això, obtindrem les dades en format data-mes-any hores:minuts;segons. Per tant, hem d'introduir la cadena de data i hora i obtenir aquest format
Sintaxi: datetime.strptime(data_entrada, %d/%m/%Y %H:%M:%S)
Paràmetre:
- datetime és el mòdul
- data_entrada és el format datatime de la cadena
- strptime s'utilitza per convertir la cadena input_date en datetime
Exemple 3: Programa Python per obtenir la cadena datetime al format %d/%m/%Y %H:%M:%S
Python 3
#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)> |
monitor de tub de raigs catòdics
>
>
Sortida:
2021-05-25 02:35:15