Python DateTime, TimeDelta, Strftime(Format) cu Exemple
⚡ Rezumat inteligent
Python datetime, împreună cu clasele date, time și timedelta, gestionează datele, orele și intervalele ca obiecte. Modulul datetime formatează ieșirea cu strftime(), analizează șiruri de caractere și calculează momente viitoare sau trecute folosind aritmetica timedelta.

In Python, data, ora si dataora Clasele oferă o serie de funcții pentru a gestiona date, ore și intervale de timp. Data și data și ora în Python sunt obiecte, deci atunci când le manipulați, manipulați de fapt obiecte și nu șiruri de caractere sau marcaje temporale. Ori de câte ori manipulați date sau ore, trebuie să importați modulul 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 — Un abdomentracclasa t pentru gestionarea 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.
Aceste instrucțiuni de import sunt elemente de funcționalitate predefinite în Python o 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 PythonNu scriem codul pentru această funcționalitate de dată, ci pur și simplu îl importăm pentru uzul nostru.
Imprimați data folosind date.today()
Funcția date.today() are mai multe proprietăți asociate. Putem afișa ziua/luna/anul individual și multe alte lucruri.
Să vedem un exemplu
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 cu zilele săptămânii care începe cu Monday ca 0 și duminică 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.
Etapa 2) În continuare, creăm o instanță a obiectului dată.
Etapa 3) Apoi, imprimăm data și rulăm codul.
Rezultatul este conform așteptărilor.
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.
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 time. Să presupunem că vrem să afișăm 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.
Bine, deci puteți vedea că aici am data și ora. Și apoi, pe rândul următor, am doar ora.
Pas 3) Vom aplica indexorul nostru pentru zilele săptămânii la lista de matrice a zilei săptămânii pentru a ști care zi este astăzi.
- Operatorul de zile lucrătoare (wd) primește un număr de la (0-6) în funcție de ziua curentă a săptămânii. Aici am declarat matricea listei pentru zile (Lun, Mar, Wed…Dum).
- 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”.
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()
Până acum, am învățat cum să folosim datetime și date. 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.
- 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
Pas 3) Funcția Strf poate declara separat data, ziua, luna și anul. De asemenea, cu mici modificări în codul de control din funcția strftime puteți formata stilul textului.
În cadrul funcției strftime, dacă înlocuiți (%a) cu A majusculă, adică (%A), rezultatul va fi afișat ca „Friday” în loc de o simplă abreviere „Fri”.
Pas 4) Cu ajutorul funcției „Strftime” putem prelua și ora sistemului local, data sau ambele.
- %C- indică data și ora locală
- %x- indică data locală
- %X- indică ora locală
Î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.
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 recupera obiectul cu o anumită dată și oră delta. Obiectul timedelta acceptă operații matematice precum adunări, subunități.tracî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 trecutSă vedem o 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
- Scrieți declarația de import pentru timedelta
- Acum scrieți codul pentru a imprima obiectul din time delta, așa cum se arată în captura de ecran
- 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
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.
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
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
- dacă 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
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
Următoarele exemple prezintă aceleași operații de dată și oră scrise pentru Python 2, unde print este o instrucțiune și nu o funcție. Folosiți aceste versiuni numai atunci când mențineți versiunile vechi. Python 2 cod.
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)



















