Konvertuokite eilutę į DateTime ir atvirkščiai Python

Įprasta būtinybė daugelyje programavimo programų yra datos ir laikas. Python turi stiprius įrankius ir paketus, kurie supaprastina datos ir laiko konvertavimą. Šiame straipsnyje bus nagrinėjama, kaip efektyviai manipuliuoti ir formatuoti datos ir laiko reikšmes Python konvertuojant Datos ir laiko eilutės objektus ir atgal. Straipsnį suskirstysime į dvi dalis:

  • Python Konvertuoti eilutę į DateTime
  • Python konvertuoti datą laiką į eilutę

Kaip konvertuoti eilutę į datos laiką?

Python programoje vartotojai kartais gali įvesti datą kaip eilutę, dėl kurios negalime atlikti datos ir laiko operacijų. Tokios operacijos kaip laiko skirtumas, datų palyginimas, darbas su laiko juostomis ir kt. negali būti atliekamos naudojant datų eilutes.

Pažiūrėkime, kaip eilučių konvertuoti į datas dviem būdais.

  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. Konvertuokite eilutę į Datetime naudodami Datetime.Strptime()

The Strptime() yra prieinama data ir laikas modulis ir naudojamas datos ir laiko konvertavimui. Ši funkcija pakeičia duotąją Datetime eilutė į norimą formatą.

Pavyzdys: Programa apibrėžia funkciją, kuri konvertuoja datą ir laiką, pavaizduotą kaip a eilutę į datos laiką objektą naudodami norimą formatą. Konvertavimas atliekamas naudojant datetime.strptime() metodą.

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

Išvestis:

2018-12-04 10:07:00 ) 

2. Konvertuokite eilutę į datos laiką naudodami Dateutil modulis

The Dateutil yra trečiosios šalies modulis. Dateutil modulis palaiko datų analizę bet kokiu eilučių formatu. Šis modulis pateikia vidinius faktus apie dabartines pasaulio laiko juostas. Parse () gali konvertuoti Python eilutę į datos ir laiko formatą. Vienintelis naudojamas parametras yra eilutė.

Pavyzdys: Programa importuoja dateutil bibliotekos analizavimo modulį konvertavimui eilutė iki datos ir laiko kuri turi datos ir laiko eilučių analizavimo funkciją. Funkcija Parser.parse() automatiškai atpažįsta formatą, o tai paverčia eilutę 2022 m. birželio 23 d. 07:31 PM į DateTime objektą.

Python3




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

Išvestis:

2022-06-23 19:31:00 

Skaityti daugiau: Sukurkite Python Datetime iš eilutės

Kaip konvertuoti datą laiką į eilutę?

Taip pat galite konvertuoti datos laiką į eilutę įvairiems tikslams, pvz., ataskaitoms teikti, pasirinktiniam formatavimui arba rodymo formatavimui. Pažiūrėkime įvairius būdus, kaip konvertuoti datos laiką į eilutę.

  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. Konvertuokite datą laiką į eilutę u dainuoti Time.strftime()

Python strftime() funkcija yra data ir laikas modulį, kad sukurtumėte eilutės atvaizdavimą pagal nurodytą formato eilutę. Mes naudojame šį metodą konvertuoti datetime į eilutę Python.

Kitą panašią funkciją galima naudoti Python laiko modulyje, kuris konvertuoja eilutę arba struct_time objektą į eilutę, kaip nurodyta formato argumente.

Pavyzdys: Programa konvertuoja Data, laikas į eilutę ir importuoja Python laiko modulį, kuriame siūlomos su laiku susijusios veiklos tvarkymo funkcijos. Funkcija convert() kaip įvestį paima eilutę datetime_str, paverčia ją laiko žyma naudojant time.mktime(), o tada formatuoja laiko žymą į eilutės atvaizdavimą, naudodama pateiktą formatą %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)))>

Išvestis:

Dec 04 2018 04:37:00 AM 

Laiko sudėtingumas: O(1)
Pagalbinė erdvė: O(1)

Sužinokite daugiau: Kaip suformatuoti datą naudojant strftime() Python

2. Konvertuoti datą laiką į eilutę naudojant Datetime

Atneškite datos ir laiko modulį į konvertuoti datetime į eilutę naudodami nurodytą datą ir laiką, ir sukurkite objektą datetime. Sukurkite formato eilutę, kurioje būtų nurodyti datos ir laiko objekto formatavimo reikalavimai.

Norėdami sukurti norimo formato eilutę, naudokite objekto DateTime metodą strftime(). Formato eilutė yra funkcijos strftime() argumentas.

Pavyzdys: Programa importuoja datos ir laiko modulį, kuris suteikia Python programuotojams prieigą prie klasių, skirtų dirbti su datomis ir laiku. Pateiktos datos ir laiko reikšmės, 2022 m. kovo 14 d., 15:30:00, naudojamos datos ir laiko objektui generuoti. Datos ir laiko objektas transformuojamas į eilutės atvaizdavimą, pagrįstą formato eilute, naudojant strftime() metodą.

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

Išvestis:

2022-03-14 15:30:00 

Laiko sudėtingumas: O(1)
Pagalbinė erdvė: O(1)

Šiame straipsnyje aptarėme būdus, kaip konvertuoti eilutę į datetime ir atvirkščiai. Datos laiko konvertavimas į eilutes arba atvirkščiai gali būti labai naudingas ir patogus programuojant. Šiuos metodus galite naudoti norėdami konvertuoti datos laiką į eilutes arba atvirkščiai.

Taip pat skaitykite: