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ฤƒ

Rezumaศ›i aceastฤƒ postare cu: