MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Modulul datetime

Funcționalitatea principală pentru lucrul cu date și ore este concentrată în modulul datetime, care include următoarele clase:

  • date
  • time
  • datatime

Clasa date

Pentru lucrul cu date, putem utiliza clasa date, care este definită în modulul datetime. Pentru a crea un obiect de tip date, putem folosi constructorul date, care primește trei parametri: anul, luna și ziua.

date(year, month, day)

De exemplu, să creăm o dată specifică:

import datetime

yesterday = datetime.date(2017, 5, 2)
print(yesterday)  # 2017-05-02

Dacă dorim să obținem data curentă, putem folosi metoda today():

from datetime import date

today = date.today()
print(today)  # 2017-05-03
print("{}.{}.{}".format(today.day, today.month, today.year))  # 3.5.2017

Prin intermediul proprietăților day, month, year putem obține ziua, luna și anul respectiv.

Clasa time

Clasa time se ocupă de lucrul cu orele. Folosind constructorul său, putem crea un obiect de tip time:

time([hour] [, min] [, sec] [, microsec])

Constructorul primește, în ordine, orele, minutele, secundele și microsecundele. Toți parametrii sunt opționali, iar dacă nu specificăm un parametru, valoarea corespunzătoare va fi inițializată cu zero.

from datetime import time

current_time = time()
print(current_time)  # 00:00:00

current_time = time(16, 25)
print(current_time)  # 16:25:00

current_time = time(16, 25, 45)
print(current_time)  # 16:25:45

Clasa datetime

Clasa datetime din modulul omonim combină funcționalitatea de lucru cu datele și orele. Pentru a crea un obiect de tip datetime, putem folosi următorul constructor:

datetime(year, month, day [, hour] [, min] [, sec] [, microsec])

Primii trei parametri, care reprezintă anul, luna și ziua, sunt obligatorii. Ceilalți sunt opționali, iar dacă nu le specificăm, vor fi inițializați cu zero.

from datetime import datetime

deadline = datetime(2017, 5, 10)
print(deadline)  # 2017-05-10 00:00:00

deadline = datetime(2017, 5, 10, 4, 30)
print(deadline)  # 2017-05-10 04:30:00

Pentru a obține data și ora curentă, putem apela metoda now():

from datetime import datetime

now = datetime.now()
print(now)  # 2017-05-03 11:18:56.239443

print("{}.{}.{}  {}:{}".format(now.day, now.month, now.year, now.hour, now.minute))  # 3.5.2017 11:21

print(now.date())
print(now.time())

Prin intermediul proprietăților day, month, year, hour, minute, second putem obține valori individuale pentru dată și oră. De asemenea, metodele date() și time() permit obținerea separată a datei și a orei.

Conversia din șir în dată

O funcționalitate importantă a clasei datetime este metoda strptime(), care permite parsarea unui șir și conversia acestuia într-o dată. Această metodă acceptă doi parametri:

strptime(str, format)

Primul parametru, str, reprezintă șirul care conține data și ora, iar al doilea parametru, format, definește modul în care diferitele părți ale datei și orei sunt aranjate în acel șir.

Pentru definirea formatului, putem utiliza următoarele coduri:

  • %d: ziua lunii ca număr
  • %m: numărul lunii
  • %y: anul ca număr de două cifre
  • %Y: anul ca număr de patru cifre
  • %H: ora în format de 24 de ore
  • %M: minutul
  • %S: secunda

Să aplicăm diverse formate:

from datetime import datetime

deadline = datetime.strptime("22/05/2017", "%d/%m/%Y")
print(deadline)  # 2017-05-22 00:00:00

deadline = datetime.strptime("22/05/2017 12:30", "%d/%m/%Y %H:%M")
print(deadline)  # 2017-05-22 12:30:00

deadline = datetime.strptime("05-22-2017 12:30", "%m-%d-%Y %H:%M")
print(deadline)  # 2017-05-22 12:30:00

Acest modul oferă o gamă largă de funcționalități pentru gestionarea și manipularea datelor și orelor în Python, permițând crearea, manipularea și conversia între diferite formate de timp și dată.

← Lecția anterioară Lecția următoare →