Převod řetězce na DateTime v Pythonu

Práce s daty a časy je běžným úkolem v programování a Python nabízí výkonný modul datetime pro zpracování operací souvisejících s datem a časem.

V tomto článku převedeme řetězec formátu ‚yyyy-mm-dd‘ (yyyy-mm-dd znamená rok-měsíc-den) na objekt DateTime pomocí Pythonu.

Příklad:

  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. 

Poznámka : Existuje několik způsobů zápisu dat ve formátu řetězce jako rrrr-mm-dd, dd/mm/rrrr atd. Pomocí těchto metod můžeme změnit libovolný formát data řetězce na formát DateTime.

Jak převést řetězce na DateTime v Pythonu?

Řetězec můžeme převést na DateTime pomocí různých přístupů a metod. Vyberte si vhodnou metodu na základě vašich požadavků a zpracujte neplatná data, abyste zajistili provedení vašeho Krajta programy. Podívejme se na jednotlivé metody níže:

  1. Použití strptime()
  2. Použitím dateutil.parser.parse()
  3. Použitím datetime.strptime()

Převést datum řetězce na datum a čas pomocí strptime()

Řetězcové datum můžeme převést na objekt DataTime pomocí funkce strptime(). z modul datum a čas s Input(). Použijeme formát ‚%Y/%m/%d‘, abychom dostali řetězec do DateTime.

Příklad:

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

Výstup:

2021-05-25 

Převeďte řetězec na objekty DateTime v Pythonu pomocí dateutil.parser.parse()

Řetězcové datum můžeme převést do formátu DateTime pomocí funkce dateutil.parser.parse() z knihovny dateutil. Poskytuje flexibilnější přístup k analýze a převodu datových řetězců.

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

Výstup:

2023-07-25 00:00:00 

Přečtěte si více: Použití dateutil k analýze dat.

Převeďte seznam dat řetězce na DateTime pomocí datetime.strptime()

Seznam dat řetězce můžeme převést na objekt DateTime pomocí datetime.strptime() . Metoda datetime.strptime() v Pythonu nám umožňuje analyzovat řetězec data se zadaným formátem a převést jej na objekt 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 

Odstraňování problémů strptime() chyb

strptime() Pokud vstupní řetězec nelze analyzovat v daném formátu, zobrazí vám ValueError.

Chcete-li najít možné řešení chyby ValueError, můžete zkusit bloky „zkusit a kromě“.

Příklad:

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

Výstup

Error: day is out of range for month 

Probrali jsme různé metody převodu řetězce data do formátu DateTime v Pythonu. Formát DateTime v Pythonu je velmi užitečný při práci s daty jako jsou data, jako je zjištění počtu dní mezi 2 daty.

Je velmi důležité uchovávat data ve formátu DateTime, pokud musíte provádět operace k datu. Překladač bude yyyy-mm-dd považovat za řetězec, pokud jej nezměníte, takže nebude možné provést Operace DateTime na to.

Podobné čtení: