Převeďte řetězec na DateTime a naopak v Pythonu

Běžnou nutností v mnoha programovacích aplikacích je zabývat se daty a časy. Python má silné nástroje a balíčky, které zjednodušují zpracování převodů data a času. Tento článek prozkoumá, jak efektivně manipulovat a formátovat hodnoty data a času Krajta konverzí Řetězce na datum a čas předměty a zpět. Článek rozdělíme do dvou částí:

  • Python Převést řetězec na DateTime
  • Python Převeďte datum a čas na řetězec

Jak převést řetězec na DateTime?

V Pythonu mohou uživatelé někdy zadat datum jako řetězec, kvůli kterému s ním nemůžeme provádět operace data a času. Operace jako časový rozdíl, porovnání dat, práce s časovými pásmy atd. nelze provádět s daty řetězce.

Podívejme se na proces převodu řetězců na data dvěma metodami.

  Input:   Dec 4 2018 10:07 AM    Output:   2018-12-04 10:07:00   Explanation:   In this, we are converting the string to Date Time. 

1. Převeďte řetězec na Datetime pomocí Datetime.Strptime()

The Strptime() je k dispozici v čas schůzky modul a používá se pro konverzi data a času. Tato funkce mění dané řetězec Datetime do požadovaného formátu.

Příklad: Program definuje funkci, která převádí datum a čas reprezentovaný jako a řetězec na datum a čas objekt pomocí požadovaného formátu. Konverze se provádí pomocí metody datetime.strptime().

Python3




import> datetime> > # Function to convert string to datetime> def> convert(date_time):> > format> => '%b %d %Y %I:%M%p'> > datetime_str> => datetime.datetime.strptime(date_time,> format> )> > > return> datetime_str> > date_time> => 'Dec 4 2018 10:07AM'> print> (convert(date_time))> print> (> type> (convert(date_time)))>

Výstup:

2018-12-04 10:07:00 ) 

2. Převeďte řetězec na datum a čas pomocí Modul Dateutil

The Dateutil je modul třetí strany. Modul Dateutil podporuje analýzu dat v libovolném formátu řetězce. Tento modul poskytuje interní fakta o aktuálních světových časových pásmech. Parse() dokáže převést řetězec Pythonu do formátu data a času. Jediný použitý parametr je řetězec.

Příklad: Program importuje modul parser knihovny dateutil pro konverzi řetězec na datum a čas který má funkci pro analýzu řetězců data a času. Funkce Parser.parse() automaticky rozpozná formát a transformuje řetězec 23. června 2022 19:31 na objekt DateTime.

Python3




from> dateutil> import> parser> > DT> => parser.parse(> 'Jun 23 2022 07:31PM'> )> > print> (DT)> print> (> type> (DT))>

Výstup:

2022-06-23 19:31:00 

Přečtěte si více: Vytvořte Python Datetime z řetězce

Jak převést datum a čas na řetězec?

DateTime můžete také převést na řetězec pro různé účely, jako je vytváření sestav, vlastní formátování nebo formátování pro zobrazení. Podívejme se na různé metody převodu data a času na řetězec.

  Input:   2018-12-04 10:07:00    Output:   Dec 4 2018 10:07:00AM    Explanation:   In this, we are converting the datetime format to the string 

1. Převeďte datum a čas na řetězec u sing Time.strftime()

Krajta strftime() funkce je přítomna v čas schůzky modul k vytvoření řetězcové reprezentace založené na zadaném formátovacím řetězci. Tuto metodu používáme k převodu datetime do řetězce v Pythonu.

Další podobná funkce je dostupná v časovém modulu Pythonu, který převádí objekt n-tice nebo struct_time na řetězec, jak je určeno argumentem format.

Příklad: Program konvertuje Datetime to String a importuje časový modul Pythonu, který nabízí funkce pro zpracování činností souvisejících s časem. Funkce convert() bere jako vstup n-tici datetime_str, transformuje ji na časové razítko pomocí time.mktime() a poté zformátuje časové razítko do řetězcové reprezentace pomocí dodaného formátu %b%d%Y%r.

Python3




import> time> > # Function to convert string to datetime> def> convert(datetime_str):> > datetime_str> => time.mktime(datetime_str)> > format> => '%b %d %Y %r'> > dateTime> => time.strftime(> format> , time.gmtime(datetime_str))> > return> dateTime> > date_time> => (> 2018> ,> 12> ,> 4> ,> 10> ,> 7> ,> 00> ,> 1> ,> 48> ,> 0> )> print> (convert(date_time))> print> (> type> (convert(date_time)))>

Výstup:

Dec 04 2018 04:37:00 AM 

Časová náročnost: O(1)
Pomocný prostor: O(1)

Další informace: Jak formátovat datum pomocí strftime() v Pythonu

2. Převeďte datum a čas na řetězec pomocí Datetime

Přeneste modul datetime do převést datum a čas na řetězec pomocí zadaného data a času a vytvořte objekt datetime. Vytvořte formátovací řetězec, který popisuje požadavky na formátování pro objekt datetime.

Chcete-li vytvořit řetězec v požadovaném formátu, použijte metodu strftime() objektu DateTime. Formátovací řetězec je argumentem pro funkci strftime().

Příklad: Program importuje modul datetime, který dává programátorům Pythonu přístup ke třídám pro práci s daty a časy. Zadané hodnoty data a času, 14. března 2022, v 15:30:00, se používají ke generování objektu datetime. Objekt datetime je transformován do řetězcové reprezentace založené na formátovacím řetězci pomocí metody strftime().

Python3




import> datetime> > datetime_object> => datetime.datetime(> 2022> ,> 3> ,> 14> ,> 15> ,> 30> ,> 0> )> > format_string> => '%Y-%m-%d %H:%M:%S'> > # Convert the datetime object to a string in the specified format> date_string> => datetime_object.strftime(format_string)> > print> (date_string)> print> (> type> (date_string))>

Výstup:

2022-03-14 15:30:00 

Časová náročnost: O(1)
Pomocný prostor: O(1)

V tomto článku jsme se zabývali metodami převodu řetězce na datum a čas a naopak. Převod data a času na řetězce nebo naopak může být v Programování velmi užitečný a pohodlný. Tyto metody můžete použít k převodu data a času na řetězce nebo naopak.

Přečtěte si také: