Python Ημερομηνία Ώρα, ΏραDelta, Strftime(Format) με Παραδείγματα

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

Τα μαθήματα ημερομηνίας σε Python κατηγοριοποιούνται σε 5 κύριες κατηγορίες.

  • ημερομηνία – Χειριστείτε ακριβώς την ημερομηνία (Μήνας, ημέρα, έτος)
  • χρόνος – Χρόνος ανεξάρτητος της ημέρας (ώρα, λεπτό, δευτερόλεπτο, μικροδευτερόλεπτο)
  • datetime – Συνδυασμός ώρας και ημερομηνίας (Μήνας, ημέρα, έτος, ώρα, δευτερόλεπτο, μικροδευτερόλεπτο)
  • timedelta— Μια χρονική διάρκεια που χρησιμοποιείται για τον χειρισμό ημερομηνιών
  • tzinfo— Μια αφηρημένη τάξη για την αντιμετώπιση των ζωνών ώρας

Πώς να χρησιμοποιήσετε την τάξη Date & DateTime

Βήμα 1) Πριν εκτελέσετε τον κώδικα για τη μορφή ημερομηνίας ώρας Python, είναι σημαντικό να εισάγετε το Python ενότητες ημερομηνίας ώρας όπως φαίνεται στο στιγμιότυπο οθόνης παρακάτω.

Χρησιμοποιήστε την τάξη Date & DateTime

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

Λάβετε υπόψη τα ακόλουθα σημεία πριν εκτελέσετε το Python κωδικός μορφής ημερομηνίας ώρας

from datetime import date

Αυτή η γραμμή λέει το Python διερμηνέας για εισαγωγή της κλάσης ημερομηνίας από την ενότητα datetime Python. Δεν γράφουμε τον κωδικό για αυτήν τη λειτουργία ημερομηνίας, δυστυχώς απλώς τον εισάγουμε για χρήση

Βήμα 2) Στη συνέχεια, δημιουργούμε μια παρουσία του αντικειμένου ημερομηνίας.

Χρησιμοποιήστε την τάξη Date & DateTime

Βήμα 3) Στη συνέχεια, εκτυπώνουμε την ημερομηνία και εκτελούμε τον κωδικό.

Χρησιμοποιήστε την τάξη Date & DateTime

Η έξοδος είναι η αναμενόμενη.

Εκτύπωση ημερομηνίας χρησιμοποιώντας date.today()

date.today η λειτουργία έχει πολλές ιδιότητες που σχετίζονται με αυτήν. Μπορούμε να εκτυπώσουμε μεμονωμένα ημέρα/μήνα/έτος και πολλά άλλα πράγματα

Ας δούμε ένα παράδειγμα

Εκτύπωση ημερομηνίας χρησιμοποιώντας date.today()

Αριθμός σημερινής εβδομάδας

Η συνάρτηση date.today() σας δίνει επίσης τον αριθμό της εβδομάδας. Εδώ είναι το τραπέζι της εβδομάδας που ξεκινά με Monday ως 0 και την Κυριακή ως 6

Ημέρα Αριθμός ημέρας εβδομάδας
Monday 0
Τρίτη 1
Τετάρτη 2
Πέμπτη 3
Παρασκευή 4
Σάββατο 5
Κυριακή 6

Ο αριθμός ημέρας της εβδομάδας είναι χρήσιμος για πίνακες των οποίων ο δείκτης εξαρτάται από την Ημέρα της εβδομάδας.

Εκτύπωση ημερομηνίας χρησιμοποιώντας date.today()

Python Τρέχουσα ημερομηνία και ώρα: τώρα() σήμερα()

Βήμα 1) Όπως και τα Date Objects, μπορούμε επίσης να χρησιμοποιήσουμε «ΑΝΤΙΚΕΙΜΕΝΑ ΗΜΕΡΟΜΗΝΙΑΣ» in Python. Python Τα αντικείμενα ημερομηνίας και ώρας δίνουν ημερομηνία μαζί με ώρα εισόδου ώρες, λεπτά, δευτερόλεπτα και χιλιοστά του δευτερολέπτου.

Python Τρέχουσα ημερομηνία και ώρα

Όταν εκτελούμε τον κώδικα για την ημερομηνία ώρας, δίνει την έξοδο με την τρέχουσα ημερομηνία και ώρα.

Βήμα 2) Με το "DATETIME OBJECT", μπορείτε επίσης να καλέσετε την τάξη ώρας.

Ας υποθέσουμε ότι θέλουμε να εκτυπώσουμε μόνο την τρέχουσα ώρα χωρίς την ημερομηνία.

t = datetime.time(datetime.now())
  • Είχαμε εισάγει την κλάση χρόνου. Θα του εκχωρήσουμε την τρέχουσα τιμή του χρόνου χρησιμοποιώντας την datetime.now()
  • Εκχωρούμε την τιμή της τρέχουσας ώρας στη μεταβλητή t.

Και αυτό θα μου δώσει ακριβώς τον χρόνο. Ας τρέξουμε λοιπόν αυτό το πρόγραμμα.

Python Τρέχουσα ημερομηνία και ώρα

Εντάξει, για να δείτε ότι εδώ πήρα την ημερομηνία και την ώρα. Και μετά η επόμενη γραμμή, έχω μόνο τον χρόνο

Βήμα 3) Θα εφαρμόσουμε το ευρετήριο των καθημερινών μας στη arrayList της εβδομάδας για να γνωρίζουμε ποια ημέρα είναι σήμερα

  • Στον χειριστή Weekdays (wd) εκχωρείται ο αριθμός από τον αριθμό (0-6) ανάλογα με την τρέχουσα ημέρα της εβδομάδας. Εδώ δηλώσαμε τη διάταξη της λίστας για μέρες (Δευτ., Τρί, Τετ…Κυρ).
  • Χρησιμοποιήστε αυτήν την τιμή ευρετηρίου για να μάθετε ποια ημέρα είναι. Στην περίπτωσή μας, είναι #2 και αντιπροσωπεύει την Τετάρτη, οπότε στην έξοδο θα εκτυπώσει το "Which is a Wednesday".

Python Τρέχουσα ημερομηνία και ώρα

Εδώ είναι ο πλήρης κωδικός για να λάβετε την τρέχουσα ημερομηνία και ώρα χρησιμοποιώντας την ημερομηνία ώρα τώρα

from datetime import date
from datetime import time
from datetime import datetime
def main():
    ##DATETIME OBJECTS
    #Get today's date from datetime class
    today=datetime.now()
    #print (today)
    # Get the current time
    #t = datetime.time(datetime.now())
    #print "The current time is", t
    #weekday returns 0 (monday) through 6 (sunday)
    wd=date.weekday(today)
    #Days start at 0 for monday
    days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]
    print("Today is day number %d" % wd)
    print("which is a " + days[wd])

if __name__== "__main__":
    main()

Πώς να μορφοποιήσετε την έξοδο ημερομηνίας και ώρας με το Strftime()

Από τώρα έχουμε μάθει πώς να χρησιμοποιούμε την ημερομηνία και την ημερομηνία αντικείμενο μέσα Python. Θα προχωρήσουμε ένα βήμα παραπέρα και θα μάθουμε πώς να χρησιμοποιούμε μια συνάρτηση μορφοποίησης για να μορφοποιήσουμε την ώρα και την ημερομηνία.

Βήμα 1) Πρώτα θα δούμε ένα απλό βήμα για το πώς να διαμορφώσετε το έτος. Είναι καλύτερα να το καταλάβουμε με ένα παράδειγμα.

Μορφοποίηση ημερομηνίας και ώρας εξόδου με Strftime()

  • Χρησιμοποιήσαμε το «λειτουργία strftime” για μορφοποίηση.
  • Αυτή η λειτουργία χρησιμοποιεί διαφορετικά κωδικός ελέγχου να δώσει έξοδο.
  • Κάθε κωδικός ελέγχου μοιάζει με διαφορετικές παραμέτρους όπως έτος, μήνας, ημέρα της εβδομάδας και ημερομηνία [(%y/%Y – Έτος), (%a/%A- ημέρα της εβδομάδας), (%b/%B- μήνας), (%d – ημέρα του μήνα)] .
  • Στην περίπτωσή μας είναι ("%Y") που μοιάζει με έτος, εκτυπώνει ολόκληρο το έτος με τον αιώνα (π.χ. 2018).

Βήμα 2) Τώρα, αν αντικαταστήσετε το (“%Y”) με πεζά, δηλαδή, ( “%y) και εκτελέσετε τον κώδικα, η έξοδος θα εμφανιστεί μόνο (18) και όχι (2018). Ο αιώνας του έτους δεν θα εμφανίζεται όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης

Μορφοποίηση ημερομηνίας και ώρας εξόδου με Strftime()

Βήμα 3) Η συνάρτηση Strf μπορεί να δηλώσει ξεχωριστά την ημερομηνία, την ημέρα, τον μήνα και το έτος. Επίσης με μικρές αλλαγές στον κώδικα ελέγχου στη λειτουργία strftime μπορείτε να μορφοποιήσετε το στυλ του κειμένου.

Μορφοποίηση ημερομηνίας και ώρας εξόδου με Strftime()

Μέσα στη συνάρτηση strftime, εάν αντικαταστήσετε το (%a) με το κεφαλαίο A, δηλαδή, το (%A) η έξοδος θα εκτυπωθεί ως "Firday" αντί για μια απλή συντομογραφία "Fri".

Μορφοποίηση ημερομηνίας και ώρας εξόδου με Strftime()

Βήμα 4) Με τη βοήθεια της λειτουργίας «Strftime» μπορούμε επίσης να ανακτήσουμε την ώρα, την ημερομηνία ή και τα δύο τοπικό σύστημα.

  1. Το %C- υποδεικνύει την τοπική ημερομηνία και ώρα
  2. Το %x- υποδεικνύει την τοπική ημερομηνία
  3. Το %X- δείχνει την τοπική ώρα

Μορφοποίηση ημερομηνίας και ώρας εξόδου με Strftime()

Στην έξοδο, μπορείτε να δείτε το αποτέλεσμα όπως αναμενόταν

Βήμα 5) Η "λειτουργία strftime" σάς επιτρέπει να καλείτε την ώρα σε οποιαδήποτε μορφή 24 ώρες ή 12 ώρες.

Μορφοποίηση ημερομηνίας και ώρας εξόδου με Strftime()

Απλώς ορίζοντας τον κωδικό ελέγχου όπως %I/H για ώρα, % M για λεπτό, %S για δευτερόλεπτο, μπορεί κανείς να καλέσει την ώρα για διαφορετικές μορφές

12 ώρες δηλώνεται η ώρα [print now.strftime(“%I:%M:%S %p) ]

24 ώρες δηλώνεται η ώρα [print now.strftime(“%H:%M”)]

Εδώ είναι ο πλήρης κώδικας για τη μετατροπή της ημερομηνίας ώρας σε αντικείμενο String.

#
#Example file for formatting time and date output
#
from datetime import datetime
def main():
   #Times and dates can be formatted using a set of predefined string
   #Control codes
      now= datetime.now() #get the current date and time
      #%c - local date and time, %x-local's date, %X- local's time
      print(now.strftime("%c"))
      print(now.strftime("%x"))
      print(now.strftime("%X"))
##### Time Formatting ####
      #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM
      print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM
      print(now.strftime("%H:%M")) # 24-Hour:Minute

if __name__== "__main__":
    main()

Σε τι βρίσκεται το Timedelta Python?

Timedelta in Python είναι ένα αντικείμενο που αντιπροσωπεύει τη διάρκεια. Χρησιμοποιείται κυρίως για τον υπολογισμό της διάρκειας μεταξύ δύο ημερομηνιών και ωρών. Χρησιμοποιείται επίσης για την ανάκτηση του αντικειμένου με κάποια ημερομηνία και ώρα δέλτα. Το αντικείμενο timedelta υποστηρίζει μαθηματικές πράξεις όπως προσθέσεις, αφαιρέσεις, πολλαπλασιασμό, διαίρεση κ.λπ.

Πώς να χρησιμοποιήσετε τα αντικείμενα Timedelta

Με Python timedelta αντικείμενα, μπορείτε να υπολογίσετε τον χρόνο τόσο για το μέλλον όσο και για το παρελθόν. Με άλλα λόγια, είναι ένα χρονικό διάστημα για να προβλέψετε οποιαδήποτε ειδική ημέρα, ημερομηνία ή ώρα.

Θυμηθείτε ότι αυτή η λειτουργία δεν προορίζεται για την εκτύπωση της ώρας ή της ημερομηνίας, αλλά κάτι για ΥΠΟΛΟΓΙΣΜΟ για το μέλλον ή το παρελθόν. Ας δούμε ένα Python παράδειγμα timedelta για να το καταλάβετε καλύτερα.

Βήμα 1) Για να εκτελέσετε το Timedelta Objects, πρέπει πρώτα να δηλώσετε τη δήλωση εισαγωγής και μετά να εκτελέσετε τον κώδικα

Αντικείμενα Timedelta

  1. Γράψτε δήλωση εισαγωγής για timedelta
  2. Τώρα γράψτε τον κώδικα για να εκτυπώσετε το αντικείμενο από το time delta όπως φαίνεται στο στιγμιότυπο οθόνης
  3. Εκτελέστε τον κωδικό. Το timedelta αντιπροσωπεύει ένα διάστημα 365 ημερών, 8 ωρών και 15 λεπτών και εκτυπώνει το ίδιο

Μπερδεμένο; Το επόμενο βήμα θα βοηθήσει -

Βήμα 2) Ας πάρουμε τη σημερινή ημερομηνία και ώρα για να ελέγξουμε αν η δήλωση εισαγωγής λειτουργεί καλά. Όταν εκτελείται ο κώδικας, εκτυπώνει τη σημερινή ημερομηνία που σημαίνει ότι η δήλωση εισαγωγής μας λειτουργεί καλά

Αντικείμενα Timedelta

Βήμα 3) Θα δούμε πώς μπορούμε να ανακτήσουμε την ημερομηνία σε ένα χρόνο από τώρα μέσω αντικειμένων δέλτα. Όταν εκτελούμε τον κώδικα, δίνει την έξοδο όπως αναμένεται.

Αντικείμενα Timedelta

Βήμα 4) Ένα άλλο παράδειγμα του τρόπου με τον οποίο μπορεί να χρησιμοποιηθεί το time delta για τον υπολογισμό της μελλοντικής ημερομηνίας από την τρέχουσα ημερομηνία και ώρα

Αντικείμενα Timedelta

Βήμα 5) Ας δούμε ένα πιο σύνθετο παράδειγμα. Θα ήθελα να προσδιορίσω πόσες μέρες πέρασαν το νέο έτος. Να πώς θα προχωρήσουμε

  • Χρησιμοποιώντας σήμερα= date.today() θα λάβουμε τη σημερινή ημερομηνία
  • Γνωρίζουμε ότι η νέα χρονιά είναι πάντα την 1η Ιανουαρίου, αλλά η χρονιά μπορεί να είναι διαφορετική. Χρησιμοποιώντας nyd= date(today.year,1,1) αποθηκεύουμε το νέο έτος στη μεταβλητή nyd
  • αν nyd < σήμερα: συγκρίνει αν η τρέχουσα ημερομηνία είναι μεγαλύτερη από το νέο έτος. Εάν ναι, εισέρχεται στο βρόχο while
  • ((σήμερα-nyd).days) δίνει τη διαφορά μεταξύ τρέχουσας ημερομηνίας και νέου έτους σε DAYS

Αντικείμενα Timedelta

Η έξοδος δείχνει ότι «Η Πρωτοχρονιά έχει ήδη περάσει πριν από 11 ημέρες».

Εδώ είναι ο πλήρης κώδικας εργασίας

#
# Example file for working with timedelta objects
#
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta

# construct a basic timedelta and print it
print (timedelta(days=365, hours=8, minutes=15))
# print today's date
print ("today is: " + str(datetime.now()))
# print today's date one year from now
print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365)))
# create a timedelta that uses more than one argument
# print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)))
# How many days until New Year's Day?
today = date.today()  # get todays date
nyd = date(today.year, 1, 1)  # get New Year Day for the same year
# use date comparison to see if New Year Day has already gone for this year
# if it has, use the replace() function to get the date for next year
if nyd < today:
    print ("New Year day is already went by %d days ago" % ((today - nyd).days))

Python 2 Παράδειγμα

from datetime import date
from datetime import time
from datetime import datetime
def main():
 	##DATETIME OBJECTS
    #Get today's date from datetime class
	today=datetime.now()
	#print today
	# Get the current time
	#t = datetime.time(datetime.now())
	#print "The current time is", t
	#weekday returns 0 (monday) through 6 (sunday)
        wd = date.weekday(today)
	#Days start at 0 for monday
        days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]
        print "Today is day number %d" % wd
        print "which is a " + days[wd]

if __name__== "__main__":
    main()
#
#Example file for formatting time and date output
#
from datetime import datetime
def main():
   #Times and dates can be formatted using a set of predefined string
   #Control codes
      now= datetime.now() #get the current date and time
      #%c - local date and time, %x-local's date, %X- local's time
      print now.strftime("%c")
      print now.strftime("%x")
      print now.strftime("%X")
##### Time Formatting ####   
      #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM
      print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM
      print now.strftime("%H:%M") # 24-Hour:Minute   

if __name__== "__main__":
    main()
#
# Example file for working with timedelta objects
#
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta

# construct a basic timedelta and print it
print timedelta(days=365, hours=8, minutes=15)
# print today's date
print "today is: " + str(datetime.now())
# print today's date one year from now
print "one year from now it will be:" + str(datetime.now() + timedelta(days=365))
# create a timedelta that uses more than one argument
# print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))
# How many days until New Year's Day?
today = date.today()  # get todays date
nyd = date(today.year, 1, 1)  # get New Year Day for the same year
# use date comparison to see if New Year Day has already gone for this year
# if it has, use the replace() function to get the date for next year
if nyd < today:
    print "New Year day is already went by %d days ago" % ((today - nyd).days)

Περίληψη

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

  • ημερομηνία – Χειριστείτε ακριβώς την ημερομηνία (Μήνας, ημέρα, έτος)
  • χρόνος – Χρόνος ανεξάρτητος της ημέρας (ώρα, λεπτό, δευτερόλεπτο, μικροδευτερόλεπτο)
  • datetime – Συνδυασμός ώρας και ημερομηνίας (Μήνας, ημέρα, έτος, ώρα, δευτερόλεπτο, μικροδευτερόλεπτο)
  • timedelta— Μια χρονική διάρκεια που χρησιμοποιείται για τον χειρισμό ημερομηνιών
  • tzinfo— Μια αφηρημένη τάξη για την αντιμετώπιση των ζωνών ώρας

Χρήση αντικειμένων ημερομηνίας ώρας

  • Η εισαγωγή αντικειμένων datetime πριν από την εκτέλεση του κώδικα είναι υποχρεωτική
  • Χρήση της συνάρτησης date.today για την εκτύπωση μεμονωμένης ημερομηνίας/μήνας/έτος καθώς και για την ευρετηρίαση της ημέρας
  • Χρησιμοποιώντας το αντικείμενο date.time για να λάβετε χρόνο σε ώρες, λεπτά, δευτερόλεπτα και χιλιοστά του δευτερολέπτου

Μορφοποίηση Time-Out με "str f time function"

  • Χρησιμοποιήστε τη συνάρτηση "str f time" για να αλλάξετε τη μορφή του έτους
  • Εκτύπωση ημέρας, ημερομηνίας, μήνας και έτους χωριστά,
  • Χρόνος κλήσης για οποιαδήποτε μορφή 12 ώρες ή 24 ώρες

Αντικείμενα Timedelta

  • Με τα αντικείμενα timedelta, μπορείτε να υπολογίσετε τον χρόνο τόσο για το μέλλον όσο και για το παρελθόν
  • Υπολογίστε τις συνολικές ημέρες που απομένουν για την ειδική ημέρα (γενέθλια) από την τρέχουσα ώρα
  • Υπολογίστε τις συνολικές ημέρες που πέρασαν για ειδική ημέρα (γενέθλια) από την τρέχουσα ώρα