Konwersja ciągu na DateTime w Pythonie

Praca z datami i godzinami jest częstym zadaniem w programowaniu, a Python oferuje potężny moduł datetime do obsługi operacji związanych z datą i czasem.

W tym artykule przekonwertujemy ciąg znaków w formacie „rrrr-mm-dd” (rrrr-mm-dd oznacza rok-miesiąc-dzień) na obiekt DateTime za pomocą języka Python.

Przykład:

  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. 

Notatka : Istnieje wiele sposobów zapisywania dat w formacie ciągu znaków, np. rrrr-mm-dd, dd/mm/rrrr itp. Za pomocą tych metod możemy zmienić dowolny format daty w postaci ciągu znaków na format DateTime.

Jak przekonwertować ciągi na DateTime w Pythonie?

Możemy przekonwertować ciąg na DateTime przy użyciu różnych podejść i metod. Wybierz odpowiednią metodę w oparciu o swoje wymagania i sprawnie obsługuj nieprawidłowe ciągi dat, aby zapewnić wykonanie swojego Pyton programy. Przyjrzyjmy się każdej metodzie poniżej:

  1. Używanie strptime()
  2. Za pomocą dateutil.parser.parse()
  3. Za pomocą datetime.strptime()

Konwertuj datę ciągu na DateTime za pomocą strptime()

Możemy przekonwertować datę ciągu na obiekt DataTime za pomocą metody funkcja strptime(). z moduł datetime z wejściem(). Użyjemy formatu „%Y/%m/%d”, aby uzyskać ciąg znaków w formacie DateTime.

Przykład:

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())>

Wyjście:

2021-05-25 

Konwertuj ciąg na obiekty DateTime w Pythonie za pomocą dateutil.parser.parse()

Możemy przekonwertować datę ciągu na format DateTime za pomocą funkcji dateutil.parser.parse() z biblioteki dateutil. Zapewnia bardziej elastyczne podejście do analizowania i konwertowania ciągów dat.

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)>

Wyjście:

2023-07-25 00:00:00 

Czytaj więcej: Używanie dateutil do analizowania dat.

Konwertuj listę dat ciągów na DateTime za pomocą datetime.strptime()

Możemy przekonwertować listę dat ciągów na obiekt DateTime za pomocą datetime.strptime() . Metoda datetime.strptime() języka Python pozwala nam analizować ciąg daty w określonym formacie i konwertować go na obiekt typu 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())>

Wyjście:

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

Rozwiązywanie problemów z błędami strptime().

strptime() wyświetli błąd ValueError, jeśli ciągu wejściowego nie można przeanalizować w podanym formacie.

Możesz wypróbować bloki „spróbuj i z wyjątkiem”, aby znaleźć możliwe rozwiązanie błędu wartości.

Przykład:

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)>

Wyjście

Error: day is out of range for month 

Omówiliśmy różne metody konwersji ciągu znaków daty na format DateTime w Pythonie. Format DateTime w Pythonie jest bardzo przydatny podczas operacji na danych jako datach, takich jak znajdowanie liczby dni między dwiema datami.

Jeśli musisz wykonywać operacje na dacie, bardzo ważne jest przechowywanie dat w formacie DateTime. Interpreter potraktuje rrrr-mm-dd jako ciąg znaków, jeśli go nie zmienisz, co uniemożliwi wykonanie Operacja DateTime na tym.

Podobne lektury: