Τα αντικείμενα Datetime επιτρέπουν απλούς υπολογισμούς χρόνου, συμπεριλαμβανομένης της προσθήκης ή αφαίρεσης διαστημάτων. Η μετατροπή συμβολοσειρών σε αντικείμενα datetime είναι απαραίτητη για την ακριβή οργάνωση, ανάλυση και εμφάνιση δεδομένων χρόνου στην Python.

Πώς λειτουργεί η μετατροπή συμβολοσειρών σε ημερομηνία και ώρα στην Python;

Η μετατροπή μιας συμβολοσειράς Python σε datetime περιλαμβάνει τη μετατροπή μιας συμβολοσειράς κειμένου, η οποία περιλαμβάνει ημερομηνία και/ή ώρα, σε ένα αντικείμενο datetime. Το Datetime είναι μια δομή δεδομένων Python που έχει σχεδιαστεί για τη διαχείριση και την προσαρμογή πληροφοριών ημερομηνίας και ώρας. Η μετατροπή συμβολοσειρών σε datetime είναι συχνά απαραίτητη για τη διαχείριση δεδομένων ημερομηνίας και ώρας που εμφανίζονται σε μορφή συμβολοσειράς.

Τα δεδομένα μετατρέπονται σε μορφή που μπορεί να χρησιμοποιηθεί για την εκτέλεση υπολογισμών, τη σύγκριση ημερομηνιών ή τη μορφοποίηση πληροφοριών χρόνου, μεταξύ άλλων. Οι μέθοδοι για τη συνένωση εκφράσεων χρησιμοποιώντας τη μορφή συμβολοσειράς Python μπορούν επίσης να είναι χρήσιμες κατά τη διαχείριση αντικειμένων datetime.

Πώς να μετατρέψετε συμβολοσειρές σε αντικείμενα datetime στην Python

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

strptime()

Η μέθοδος strptime() (χρόνος ανάλυσης συμβολοσειράς) από τη βιβλιοθήκη datetime χρησιμοποιείται για τη μετατροπή μιας συμβολοσειράς σε αντικείμενο datetime της Python. Απαιτούνται δύο ορίσματα: η συμβολοσειρά που θα αναλυθεί και η μορφή ημερομηνίας/ώρας της συμβολοσειράς.

datetime.strptime(date_string, format)
python

datetime.datetime()

Με τη μέθοδο strptime(), μια συμβολοσειρά μπορεί να μετατραπεί σε αντικείμενο datetime.datetime, λαμβάνοντας υπόψη μια συγκεκριμένη μορφή ημερομηνίας/ώρας.

from datetime import datetime
date_string = '2023-10-30 12:00:00'
date_object = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(date_object) # Output: 2023-10-30 12:00:00
python

Σε αυτό το παράδειγμα, το date_string ορίζεται ως '2023-10-30 12:00:00' και η μορφή '%Y-%m-%d %H:%M:%S' καθορίζει τη σειρά και τον τρόπο εμφάνισης της ημερομηνίας και της ώρας στη συμβολοσειρά. Η μέθοδος strptime() ερμηνεύει τη συμβολοσειρά με βάση αυτή τη μορφή και δημιουργεί ένα αντικείμενο datetime.datetime, το οποίο στη συνέχεια αποθηκεύεται στη μεταβλητή date_object.

Αυτό σημαίνει '%Y-%m-%d %H:%M:%S':

  • %Y: Τετραψήφιο έτος
  • %m: Δύο ψηφία για τον μήνα
  • %d: Δύο ψηφία για την ημέρα
  • %H: Ώρα (24ωρη μορφή)
  • %M: Λεπτά
  • %S: Δευτερόλεπτα

datetime.time()

Μετατρέποντας τις συμβολοσειρές σε αντικείμενο datetime.time, μπορείτε να αναπαραστήσετε ώρες χωρίς ημερομηνία. Αυτό μπορεί να επιτευχθεί χρησιμοποιώντας τη μέθοδο strptime() από την κλάση datetime ή διαιρώντας μια συμβολοσειρά ώρας σε ώρες, λεπτά και δευτερόλεπτα.

from datetime import datetime
time_string = '14::30::00'
time_object = datetime.strptime(time_string, '%H::%M::%S').time()
print(time_object) # Output: 14:30:00
python

'%H:%M:%S' αντιπροσωπεύει τη μορφή ώρες:λεπτά:δευτερόλεπτα. Η μέθοδος strptime() ερμηνεύει τη συμβολοσειρά χρόνου σύμφωνα με αυτή τη μορφή και δημιουργεί ένα αντικείμενο datetime.time.

datetime.date()

Εναλλακτικά, μπορείτε να μετατρέψετε μια συμβολοσειρά σε αντικείμενο datetime.date χρησιμοποιώντας τη μέθοδο strptime() από την κλάση datetime ή διαιρώντας χειροκίνητα τη συμβολοσειρά ημερομηνίας σε στοιχεία έτους, μήνα και ημέρας.

from datetime import datetime
date_string = '2023-11-30'
date_object = datetime.strptime(date_string, '%Y-%m-%d').date()
print(date_object) # Output: 2023-11-30
python

'%Y-%m-%d' είναι η μορφή έτους-μήνα-ημέρας. Η μέθοδος strptime() αναλύει τη συμβολοσειρά ημερομηνίας και δημιουργεί ένα αντικείμενο datetime.date.

Πώς να αντιμετωπίσετε strptime() σφάλματα

Όταν χρησιμοποιείτε τη μέθοδο strptime() για τη μετατροπή συμβολοσειρών σε αντικείμενα datetime στην Python, ενδέχεται να αντιμετωπίσετε σφάλματα, ειδικά εάν η καθορισμένη μορφή δεν ταιριάζει με τη μορφή της συμβολοσειράς εισόδου. Ακολουθούν μερικά συνηθισμένα σφάλματα και τρόποι για την επίλυσή τους:

  • ValueError: time data '...' does not match format '...': Αυτό το σφάλμα εμφανίζεται εάν η συμβολοσειρά εισόδου δεν αντιστοιχεί στην καθορισμένη μορφή. Βεβαιωθείτε ότι χρησιμοποιήθηκε το σωστό μοτίβο μορφής στο strptime().
  • ValueError: unconverted data remains: Αυτό το σφάλμα εμφανίζεται εάν παραμένουν μη ερμηνευμένα δεδομένα μετά την επεξεργασία της συμβολοσειράς. Βεβαιωθείτε ότι το μοτίβο μορφής καλύπτει όλα τα τμήματα της συμβολοσειράς εισόδου.
  • TypeError: strptime() argument 1 must be str, not ...: Αυτό μπορεί να συμβεί εάν η παράμετρος που μεταβιβάστηκε στο strptime() δεν είναι συμβολοσειρά. Βεβαιωθείτε ότι η παρεχόμενη τιμή είναι συμβολοσειρά που περιλαμβάνει τη μορφή ημερομηνίας/ώρας.

Πρέπει να βεβαιωθείτε ότι το μοτίβο μορφοποίησης ερμηνεύει σωστά όλα τα μέρη της συμβολοσειράς εισόδου (έτος, μήνας, ημέρα, ώρα κ.λπ.). Είναι επίσης σημαντικό να λάβετε υπόψη τις πιθανές διαφορές στα διαχωριστικά, τα κεφαλαία γράμματα και άλλες λεπτομέρειες μεταξύ του μοτίβου μορφοποίησης και της συμβολοσειράς εισόδου.

Go to Main Menu