Python strptime () - συμβολοσειρά σε αντικείμενο χρόνου

Σε αυτό το άρθρο, θα μάθετε να δημιουργείτε ένα αντικείμενο χρόνου από μια συμβολοσειρά (με τη βοήθεια παραδειγμάτων).

Η strptime()μέθοδος δημιουργεί ένα αντικείμενο χρόνου από τη δεδομένη συμβολοσειρά.

Σημείωση: Δεν μπορείτε να δημιουργήσετε datetimeαντικείμενο από κάθε συμβολοσειρά. Η συμβολοσειρά πρέπει να είναι σε συγκεκριμένη μορφή.

Παράδειγμα 1: συμβολοσειρά σε αντικείμενο χρόνου

  from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) print("type of date_string =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("type of date_object =", type(date_object)) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 date_string = 21 Ιουνίου 2018 τύπος date_string = date_object = 2018-06-21 00:00:00 τύπος date_object = 

Πώς λειτουργεί το strptime ();

Η strptime()μέθοδος κλάσης περιλαμβάνει δύο ορίσματα:

  • συμβολοσειρά (που θα μετατραπεί σε ώρα)
  • μορφή κώδικα

Με βάση τον κώδικα συμβολοσειράς και μορφής που χρησιμοποιείται, η μέθοδος επιστρέφει το αντίστοιχο datetimeαντικείμενο.

Στο παραπάνω παράδειγμα:

Εδώ,

  • %d- Αντιπροσωπεύει την ημέρα του μήνα. Παράδειγμα: 01, 02,…, 31
  • %B- Πλήρες όνομα του μήνα. Παράδειγμα: Ιανουάριος, Φεβρουάριος κ.λπ.
  • %Y- Έτος με τέσσερα ψηφία. Παράδειγμα: 2018, 2019 κ.λπ.

Παράδειγμα 2: συμβολοσειρά σε αντικείμενο χρόνου

  from datetime import datetime dt_string = "12/11/2018 09:15:32" # Considering date is in dd/mm/yyyy format dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Considering date is in mm/dd/yyyy format dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32 

Μορφοποίηση λίστας κωδικών

Ο παρακάτω πίνακας δείχνει όλους τους κωδικούς μορφής που μπορείτε να χρησιμοποιήσετε.

Διευθυντικός Εννοια Παράδειγμα
%a Συντομευμένο όνομα της εβδομάδας. Κυρ, Δευ,…
%A Πλήρες όνομα ημέρας της εβδομάδας. Κυριακή Δευτέρα,…
%w Ημέρα της εβδομάδας ως δεκαδικός αριθμός. 0, 1,…, 6
%d Ημέρα του μήνα ως δεκαδικό δεκαδικό. 01, 02,…, 31
%-d Ημέρα του μήνα ως δεκαδικός αριθμός. 1, 2,…, 30
%b Συντομευμένο όνομα μήνα. Ιαν, Φεβ…, Δεκ
%B Όνομα πλήρους μήνα. Ιανουάριος Φεβρουάριος,…
%m Μήνας ως δεκαδικός αριθμός με μηδενική επένδυση. 01, 02,…, 12
%-m Μήνας ως δεκαδικός αριθμός. 1, 2,…, 12
%y Έτος χωρίς αιώνα ως δεκαδικός δεκαδικός αριθμός. 00, 01,…, 99
%-y Έτος χωρίς αιώνα ως δεκαδικός αριθμός. 0, 1,…, 99
%Y Έτος με αιώνα ως δεκαδικός αριθμός. 2013, 2019 κ.λπ.
%H Ώρα (24ωρο ρολόι) ως δεκαδικός αριθμός με μηδενική επένδυση 00, 01,…, 23
%-H Ώρα (24ωρο ρολόι) ως δεκαδικός αριθμός. 0, 1,…, 23
%I Ώρα (ρολόι 12 ωρών) ως δεκαδικός δεκαδικός αριθμός. 01, 02,…, 12
%-I Ώρα (ρολόι 12 ωρών) ως δεκαδικός αριθμός. 1, 2,… 12
%p Το τοπικό AM ή PM. Π.Μ. Μ.Μ
%M Λεπτό ως δεκαδικός αριθμός με μηδενική επένδυση. 00, 01,…, 59
%-M Λεπτό ως δεκαδικός αριθμός. 0, 1,…, 59
%S Δεύτερος ως δεκαδικός αριθμός με μηδενικό. 00, 01,…, 59
%-S Δεύτερος ως δεκαδικός αριθμός. 0, 1,…, 59
%f Μικροδευτερόλεπτο ως δεκαδικός αριθμός, μηδενικός στα αριστερά. 000000 - 999999
%z Μετατόπιση UTC με τη μορφή + HHMM ή -HHMM.
%Z Όνομα ζώνης ώρας.
%j Ημέρα του έτους ως μηδενικός δεκαδικός αριθμός. 001, 002,…, 366
%-j Ημέρα του έτους ως δεκαδικός αριθμός. 1, 2,…, 366
%U Αριθμός εβδομάδας του έτους (Κυριακή ως πρώτη ημέρα της εβδομάδας). Όλες οι ημέρες σε ένα νέο έτος που προηγείται της πρώτης Κυριακής θεωρείται ότι είναι στην εβδομάδα 0. 00, 01,…, 53
%W Αριθμός εβδομάδας του έτους (Δευτέρα ως πρώτη ημέρα της εβδομάδας). Όλες οι ημέρες σε ένα νέο έτος που προηγείται της πρώτης Δευτέρας θεωρούνται ότι είναι στην εβδομάδα 0. 00, 01,…, 53
%c Η κατάλληλη παράσταση ημερομηνίας και ώρας του Locale. Δευ 30 Σεπ 07:06:05 2013
%x Η κατάλληλη αναπαράσταση ημερομηνίας της περιοχής. 09/30/13
%X Η κατάλληλη αναπαράσταση της τοπικής ώρας. 07:06:05
%% Ένας κυριολεκτικός χαρακτήρας '%'. %

ValueError σε strptime ()

Εάν η συμβολοσειρά (πρώτο όρισμα) και ο κωδικός μορφής (δεύτερο όρισμα) περάσει στο strptime()δεν ταιριάζει, θα λάβετε ValueError. Για παράδειγμα:

  from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object) 

Εάν εκτελέσετε αυτό το πρόγραμμα, θα εμφανιστεί ένα σφάλμα.

 ValueError: τα δεδομένα χρόνου "12/11/2018" δεν ταιριάζουν με τη μορφή "% d% m% Y" 

Προτεινόμενες αναγνώσεις: Python strftime ()

ενδιαφέροντα άρθρα...