Mòduls estàndards: mòduls de hora i dates¶
Mòdul time¶
El temps es mesurat com un número real que representa els segons transcorreguts des del 1 de gener de 1970. Per lo tant es impossible representar dates anteriors a aquesta data i posteriors a 2038 (grandària del float en la llibreria C (32 bits)).
Per convertir la quantitat de segons a la data i hora local:
>>> tiempo = time.time()
>>> time.localtime(tiempo)
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=4, tm_hour=10, tm_min=37, tm_sec=19, tm_wday=5, tm_yday=63, tm_isdst=0)
Si volem obtenir la data i hora actual:
>>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=4, tm_hour=10, tm_min=37, tm_sec=30, tm_wday=5, tm_yday=63, tm_isdst=0)
Ens retorna una estructura de la qual podem accedir a varis camps.
Podem representar la data i hora com una cadena:
O amb un determinat format:
>>> time.strftime('%d/%m/%Y %H:%M:%S')
'04/03/2017 10:44:52'
>>> time.strftime('%d/%m/%Y %H:%M:%S',tiempo)
'04/03/2017 10:39:21'
Mòdul datetime¶
El mòdul datetime amplia les possibilitats del mòdul time que dona les funcions per manipular expressions de temps.
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2017, 3, 4, 10, 52, 12, 859564)
>>> datetime.now().day,datetime.now().month,datetime.now().year
(4, 3, 2017)
Per comparar dates i hores:
>>> from datetime import datetime, date, time, timedelta
>>> hora1 = time(10,5,0)
>>> hora2 = time(23,15,0)
>>> hora1>hora2
False
>>> fecha1=date.today()
>>> fecha2=fecha1+timedelta(days=2)
>>> fecha1
datetime.date(2017, 3, 4)
>>> fecha2
datetime.date(2017, 3, 6)
>>> fecha1<fecha2
True
Podem imprimir aplicant un format:
Podem convertir una cadena a un datetime:
I podem treballar amb quantitats (segons, minuts, hores, dies, setmanes,...) amb timedelta:
>>> hoy = date.today()
>>> ayer = hoy - timedelta(days=1)
>>> diferencia = hoy - ayer
>>> diferencia
datetime.timedelta(1)
>>> fecha1=datetime.now()
>>> fecha2=datetime(1995,10,12,12,23,33)
>>> diferencia=fecha1-fecha2
>>> diferencia
datetime.timedelta(7813, 81981, 333199)
Mòdul calendar¶
Podem obtenir el calendari del mes actual:
>>> año = date.today().year
>>> mes = date.today().month
>>> calendario_mes = calendar.month(año, mes)
>>> print(calendario_mes)
March 2017
Mo Tu We Th Fr Sa Su
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
I per mostrar tots els mesos de l'any: