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:
- Použití strptime()
- Použitím dateutil.parser.parse()
- 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í:
- Převeďte řetězec na DateTime a naopak v Pythonu
- Manipulujte s datem a časem pomocí modulu Datetime
- Vytvořte Python Datetime z řetězce
- Práce s objekty Datetime a časovými pásmy v Pythonu