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.

  • 🔘 Cinci clase: Modulul datetime grupează clasele date, time, datetime, timedelta și tzinfo pentru lucrul cu date și ore.
  • ☑️ Valori actuale: datetime.now() și date.today() returnează data și ora curente, inclusiv numărul zilei săptămânii.
  • Formatare: Funcția strftime() transformă o valoare dată/oră în text lizibil folosind coduri de control precum %Y, %A și %H.
  • 🧪 Delta de timp: Un obiect timedelta măsoară o durată și prezice date viitoare sau trecute prin adunare și subdivizare.tracTION.
  • 🛠️ Directivele: Aceleași coduri de control utilizează metoda strftime() pentru ieșire și metoda strptime() pentru citirea unui șir de caractere înapoi într-o funcție datetime.
  • 🤖 Fluxuri de lucru bazate pe inteligența artificială: Conductele de învățare automată obțin caracteristici de dată și oră, cum ar fi ziua săptămânii și ora, pentru modelele de serii temporale.

Python DateTime

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.

Utilizați clasa Date și DateTime

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

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 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.

Imprimați data folosind date.today()

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

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.

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 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.

Python Data și ora curente

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”.

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

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.

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 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.

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

Î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”.

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

  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

Obiecte Timedelta

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
  • 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

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

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)

Întrebări frecvente

Folosește datetime.strptime(text, format) pentru a analiza un șir de caractere într-un obiect datetime. Transmite aceleași directive pe care le folosește strftime(), astfel încât „2018-06-29” să se citească cu „%Y-%m-%d”. Ca inversă a lui strftime(), strptime() transformă textul lizibil de om înapoi într-un obiect datetime cu care poți calcula.

O valoare datetime fără tzinfo este naivă; atașarea unui fus orar o face conștientă. Folosește modulul zoneinfo încorporat (Python 3.9+) sau pachetul pytz pentru a localiza date și ore, apoi a converti între zone, astfel încât calculele să rămână corecte în toate regiunile.

Apelați metoda timestamp() pe o valoare datetime pentru a obține secundele de la epoca Unix ca număr cu număr în număr float, de exemplu datetime.now().timestamp(). Pentru a merge în direcția opusă, datetime.fromtimestamp(value) reconstruiește o valoare datetime dintr-un timestamp Unix.

Ambele returnează data și ora locală curentă, dar datetime.now() acceptă un argument opțional de fus orar, în timp ce datetime.today() nu. Pentru codul care ține cont de fusul orar, este de preferat datetime.now(tz), astfel încât rezultatul să aibă offset-ul corect în loc să rămână naiv.

Da. Modulul datetime este livrat cu Python, deci nu este necesară instalarea PIP. Importați-l cu „from datetime import datetime, date, time, timedelta” și clasele date, time, datetime, timedelta și tzinfo devin disponibile imediat.

Apelați metoda isoformat() pentru a obține un șir standard ISO 8601, cum ar fi „2018-06-29T08:15:27”. Pentru un obiect de tip dată, aceasta returnează „AAAA-LL-ZZ”. isoformat() nu necesită coduri de control, spre deosebire de strftime(), care construiește machete personalizate din directive.

Conductele de învățare automată transformă marcajele temporale brute în caracteristici precum ziua săptămânii, ora, luna și timpul scurs folosind datetime și timedelta. Aceste caracteristici de date proiectate ajută modelele de serii temporale și sistemele de prognoză bazate pe inteligență artificială să detecteze tiparele sezoniere și ciclice.

Da. Asistenții GitHub Copilot și agențic AI generează șiruri de format strftime(), aritmetică timedelta și conversii de fus orar dintr-un scurt comentariu și pot explica directive criptice. Rulați întotdeauna codul sugerat, deoarece gestionarea datelor și offset-urile sunt ușor de greșit.

Rezumați această postare cu: