Conversia șirului în DateTime în Python

Lucrul cu datele și orele este o sarcină comună în programare, iar Python oferă un modul puternic de date și oră pentru a gestiona operațiunile legate de dată și oră.

În acest articol, vom converti șirul formatului „aaaa-mm-zz” (aaaa-mm-zz înseamnă an-lună-zi) într-un obiect DateTime folosind Python.

Exemplu:

  Input:   '2023-07-25'   Output:   2023-07-25 11:30:00   Explanation:   In This, we are converting the string 'yyyy-mm-dd' to Datetime format in Python. 

Notă : Există mai multe moduri de a scrie date în format șir, cum ar fi aaaa-mm-zz, zz/ll/aaaa, etc. Putem schimba orice format de dată șir în format DateTime folosind aceste metode.

Cum se convertesc șirurile de caractere în DateTime în Python?

Putem converti șirul în DateTime folosind diferite abordări și metode. Alegeți metoda potrivită în funcție de cerințele dvs. și gestionați cu grație șirurile de date nevalide pentru a asigura execuția dvs Piton programe. Să ne uităm la fiecare metodă de mai jos:

  1. Folosind strptime()
  2. Folosind dateutil.parser.parse()
  3. Folosind datetime.strptime()

Convertiți șirul de date în DateTime folosind strptime()

Putem converti data șirului într-un obiect DataTime folosind funcția strptime(). din modulul datetime cu Input(). Vom folosi formatul „%Y/%m/%d” pentru a aduce șirul la DateTime.

Exemplu:

Python3




import> datetime> # datetime in string format for may 25 1999> input> => '2021/05/25'> 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())>

Ieșire:

2021-05-25 

Convertiți șirul în obiecte DateTime în Python folosind dateutil.parser.parse()

Putem converti data șirului în format DateTime folosind funcția dateutil.parser.parse() din biblioteca dateutil. Oferă o abordare mai flexibilă pentru analizarea și conversia șirurilor de date.

Python3




from> dateutil.parser> import> parse> def> convert_to_datetime(input_str, parserinfo> => None> ):> > return> parse(input_str, parserinfo> => parserinfo)> # Example usage> date_string> => '2023-07-25'> result_datetime> => convert_to_datetime(date_string)> print> (result_datetime)>

Ieșire:

2023-07-25 00:00:00 

Citeşte mai mult: Folosind dateutil pentru a analiza datele.

Convertiți Lista de Date șiruri în DateTime folosind datetime.strptime()

Putem converti o listă de date șiruri într-un obiect DateTime folosind datetime.strptime() . Metoda datetime.strptime() de la Python ne permite să analizăm un șir de dată cu un format specificat și să îl convertim într-un obiect 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())>

Ieșire:

2021-05-25 2020-05-25 2019-02-15 1999-02-04 

Depanarea erorilor strptime().

strptime() vă va da ValueError dacă șirul de intrare nu poate fi analizat în formatul dat.

Puteți încerca blocurile „încercați și cu excepția” pentru a găsi soluția posibilă a ValueError.

Exemplu:

Python3




from> datetime> import> datetime> # error as 2021 is not a leap year> date_string> => '2021-02-29'> date_format> => '%Y-%m-%d'> # Attempt to convert string to datetime> try> :> > date_object> => datetime.strptime(date_string, date_format)> > print> (date_object)> except> ValueError as e:> > print> (> 'Error:'> , e)>

Ieșire

Error: day is out of range for month 

Am acoperit diferite metode de a converti șirul șirului de date în format DateTime în Python. Formatul DateTime în Python este foarte util atunci când se operează pe date ca date, cum ar fi găsirea numărului de zile între 2 date.

Este foarte important să păstrați datele în format DateTime dacă trebuie să efectuați operațiuni la dată. Interpretul va trata aaaa-mm-zz ca un șir dacă nu îl schimbați, făcând imposibilă efectuarea Operațiune DateTime pe el.

Citiri similare: