Python DateTime, TimeDelta, Strftime(Format) cu Exemple

In Python, data, ora si dataora clasele oferă o serie de funcții pentru a se ocupa de date, ore și intervale de timp. Data și data și ora în Python sunt obiectele, așa că atunci când le manipulezi, de fapt manipulezi obiecte și nu șir sau marcaje temporale. Ori de câte ori manipulați datele sau ora, trebuie să importați funcția datetime.

Clasele datetime în Python sunt clasificate în 5 clase principale.

  • data – Manipulați doar data (lună, zi, an)
  • timp – Timp independent de zi (oră, minut, secundă, microsecundă)
  • datetime – Combinație de timp și dată (lună, zi, an, oră, secundă, microsecundă)
  • timedelta— O durată de timp utilizată pentru manipularea datelor
  • tzinfo— O clasă abstractă pentru tratarea fusurilor orare

Cum să utilizați clasa Date și DateTime

Etapa 1) Înainte de a rula codul pentru formatul datetime în Python, este important să importați Python module date și oră, așa cum se arată în captura de ecran de mai jos.

Utilizați clasa Date și DateTime

Aceste instrucțiuni de import sunt elemente de funcționalitate predefinite în Python bibliotecă care vă permite să manipulați datele și orele, fără a scrie niciun cod.

Luați în considerare următoarele puncte înainte de a executa Python cod de format datetime

from datetime import date

Această linie spune Python interpret pentru a importa clasa de date din modulul datetime în Python. Nu scriem codul pentru această funcționalitate de dată, din păcate, doar îl importăm pentru uzul nostru

Etapa 2) În continuare, creăm o instanță a obiectului dată.

Utilizați clasa Date și DateTime

Etapa 3) Apoi, imprimăm data și rulăm codul.

Utilizați clasa Date și DateTime

Ieșirea este cea așteptată.

Imprimați data folosind date.today()

date.today funcția are mai multe proprietăți asociate cu ea. Putem imprima o zi/lună/an individuală și multe alte lucruri

Să vedem un exemplu

Imprimați data folosind date.today()

Numărul zilei săptămânii de astăzi

Funcția date.today() vă oferă și numărul zilei săptămânii. Iată tabelul zilelor săptămânii care începe cu Monday ca 0 și duminica ca 6

Zi Numărul zilei săptămânii
Monday 0
marţi 1
miercuri 2
joi 3
Vineri 4
Sâmbătă 5
Duminică 6

Weekday Number este util pentru tablourile al căror index depinde de Ziua săptămânii.

Imprimați data folosind date.today()

Python Data și ora curente: acum() astăzi()

Pas 1) La fel ca și Date Objects, putem folosi „OBIECTE DATETIME” in Python. Python obiectele data și ora oferă data împreună cu ora în ore, minute, secunde și milisecunde.

Python Data și ora curente

Când executăm codul pentru datetime, acesta oferă ieșirea cu data și ora curente.

Pas 2) Cu „DATETIME OBJECT”, puteți apela și clasa de timp.

Să presupunem că vrem să tipărim doar ora curentă fără dată.

t = datetime.time(datetime.now())
  • Importasem clasa de timp. Îi vom atribui valoarea curentă a timpului folosind datetime.now()
  • Atribuim valoarea timpului curent variabilei t.

Și asta îmi va oferi doar timpul necesar. Deci hai să rulăm acest program.

Python Data și ora curente

Bine, așa că puteți vedea că aici am data și ora. Și apoi următorul rând, am doar timpul de la sine

Pas 3) Vom aplica indexatorul nostru pentru zilele săptămânii la arrayList pentru a ști care zi este astăzi

  • Operatorului în zilele lucrătoare (wd) i se atribuie numărul de la numărul (0-6) în funcție de ziua curentă a săptămânii. Aici am declarat matricea listei pentru zile (luni, marți, miercuri... duminică).
  • Utilizați acea valoare a indexului pentru a afla ce zi este. În cazul nostru, este numărul 2 și reprezintă miercuri, așa că în rezultat va tipări „Care este o zi de miercuri”.

Python Data și ora curente

Iată codul complet pentru a obține data și ora curente folosind datetime acum

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

Cum se formatează data și ora ieșirii cu Strftime()

De acum, am învățat cum să folosim data, ora și data obiect în Python. Vom avansa cu un pas mai departe și vom învăța cum să folosim o funcție de formatare pentru a formata Ora și Data.

Pas 1) Mai întâi vom vedea un pas simplu despre cum să formatăm anul. Este mai bine să înțelegeți cu un exemplu.

Formatați data și ora ieșirii cu Strftime()

  • Am folosit „funcția strftime” pentru formatare.
  • Această funcție folosește diferite cod de control pentru a da o ieșire.
  • Fiecare cod de control seamănă cu diferiți parametri, cum ar fi anul, luna, ziua săptămânii și data [(%y/%Y – An), (%a/%A- ziua săptămânii), (%b/%B-lună), (%d – ziua lunii)] .
  • În cazul nostru, așa este (“%Y”) care seamănă cu anul, imprimă întregul an cu secolul (de exemplu, 2018).

Pas 2) Acum, dacă înlocuiți (“%Y”) cu minuscule, adică („%y) și executați codul, rezultatul va afișa doar (18) și nu (2018). Secolul anului nu se va afișa așa cum se arată în captura de ecran de mai jos

Formatați data și ora ieșirii cu Strftime()

Pas 3) Funcția Strf poate declara data, ziua, luna și anul separat. De asemenea, cu mici modificări ale codului de control în funcția strftime puteți formata stilul textului.

Formatați data și ora ieșirii cu Strftime()

În interiorul funcției strftime dacă înlocuiți (%a) cu A majusculă, adică (%A), rezultatul va fi tipărit ca „Ziua” în loc de doar o abreviere „Vineri”.

Formatați data și ora ieșirii cu Strftime()

Pas 4) Cu ajutorul funcției „Strftime” putem prelua și ora sistemului local, data sau ambele.

  1. %C- indică data și ora locală
  2. %x- indică data locală
  3. %X- indică ora locală

Formatați data și ora ieșirii cu Strftime()

În rezultat, puteți vedea rezultatul așa cum vă așteptați

Pas 5) „Funcția strftime” vă permite să apelați ora în orice format 24 de ore sau 12 ore.

Formatați data și ora ieșirii cu Strftime()

Doar definind codul de control precum %I/H pentru oră, % M pentru minut, %S pentru secundă, se poate apela ora pentru diferite formate

12 ore ora este declarată [print now.strftime(“%I:%M:%S %p)]

24 ore ora este declarată [print now.strftime(“%H:%M”)]

Iată codul complet pentru a converti datetime în obiect 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()

În ce este Timedelta Python?

Timedelta in Python este un obiect care reprezintă durata. Este folosit în principal pentru a calcula durata dintre două date și ore. De asemenea, este folosit pentru a prelua obiectul cu o anumită dată și oră delta. Obiectul timedelta acceptă operații matematice precum adunări, scăderi, înmulțiri, împărțiri etc.

Cum se utilizează Timedelta Objects

cu Python obiecte timedelta, puteți estima timpul atât pentru viitor, cât și pentru trecut. Cu alte cuvinte, este un interval de timp pentru a prezice orice zi, dată sau oră specială.

Amintiți-vă că această funcție nu este pentru tipărirea orei sau a datei, ci pentru a CALCULA despre viitor sau trecut. Să vedem un Python exemplu timedelta pentru a-l înțelege mai bine.

Pas 1) Pentru a rula Timedelta Objects, trebuie să declarați mai întâi instrucțiunea de import și apoi să executați codul

Obiecte Timedelta

  1. Scrieți declarația de import pentru timedelta
  2. Acum scrieți codul pentru a imprima obiectul din time delta, așa cum se arată în captura de ecran
  3. Rulați codul. Timedelta reprezintă un interval de 365 de zile, 8 ore și 15 minute și tipărește același

Confuz? Următorul pas va ajuta-

Pas 2) Să obținem data și ora de astăzi pentru a verifica dacă extrasul nostru de import funcționează bine. Când codul este executat, se tipărește data de astăzi, ceea ce înseamnă că declarația noastră de import funcționează bine

Obiecte Timedelta

Pas 3) Vom vedea cum putem recupera data peste un an prin obiecte delta. Când rulăm codul, acesta dă rezultatul așa cum era de așteptat.

Obiecte Timedelta

Pas 4) Un alt exemplu despre modul în care delta de timp poate fi utilizată pentru a calcula data viitoare de la data și ora curente

Obiecte Timedelta

Pas 5) Să ne uităm la un exemplu mai complex. Aș dori să stabilesc câte zile au trecut de Anul Nou. Iată cum vom proceda

  • Folosind today= date.today() vom obține data de astăzi
  • Știm că noul an este întotdeauna pe 1-ian, dar anul ar putea fi diferit. Folosind nyd= date(today.year,1,1) stocăm noul an în variabila nyd
  • if nyd < azi: compară dacă data curentă este mai mare decât noul an. Dacă da, intră în bucla while
  • ((today-nyd).days) oferă diferența dintre data curentă și anul nou în DAYS

Obiecte Timedelta

Rezultatul arată că „Ziua de Anul Nou a trecut deja acum 11 zile”.

Iată codul de lucru complet

#
# 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 Exemplu

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)

Rezumat

Pentru manipularea datelor și orelor în moduri simple și complexe, modulul datetime furnizează diferite clase sau categorii, cum ar fi

  • data – Manipulați doar data (lună, zi, an)
  • timp – Timp independent de zi (oră, minut, secundă, microsecundă)
  • datetime – Combinație de timp și dată (lună, zi, an, oră, secundă, microsecundă)
  • timedelta— O durată de timp utilizată pentru manipularea datelor
  • tzinfo— O clasă abstractă pentru tratarea fusurilor orare

Utilizarea obiectelor datetime

  • Importarea obiectelor datetime înainte de a executa codul este obligatorie
  • Utilizarea funcției date.today pentru imprimarea datei/lunii/anului individual, precum și pentru indexarea zilei
  • Folosind obiectul date.time pentru a obține timpul în ore, minute, secunde și milisecunde

Formatarea Time-Out cu „funcția de timp str f”

  • Utilizați „funcția str f time” pentru a schimba formatul anului
  • Tipăriți separat ziua, data, luna și anul,
  • Timp de apel pentru orice format 12 ore sau 24 de ore

Obiecte Timedelta

  • Cu obiectele timedelta, puteți estima timpul atât pentru viitor, cât și pentru trecut
  • Calculați numărul total de zile rămase pentru ziua specială (ziua de naștere) din ora curentă
  • Calculați numărul total de zile trecute pentru ziua specială (ziua de naștere) din ora curentă