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)



















