Funcionalidades de series temporales
Índice de contenido
La librería de estándar de Python cuenta con el módulo datetime, que nos permite trabajar con fechas y horas.
import datetime
Es conveniente conocer algunos de los tipos en los que se basa:
datetime.date
Información
La clase datetime.date se utiliza para fechas.
Parámetros
Una instancia de este tipo puede generarse especificando los siguientes parámetros:
datetime.date(year, month, day)
fecha = datetime.date(2020, 9, 1)
fecha
datetime.date(2020, 9, 1)
Otras opciones para generarlo
También puede generarse de las siguientes maneras:
hoy = datetime.date.today()
hoy
datetime.date(2020, 10, 11)
datetime.date.fromisocalendar(year = 2020,
week = 20,
day = 2)
datetime.date(2020, 5, 12)
Atributos
- year
- month
- day
year_today = hoy.year
year_today
2020
hoy.month
10
hoy.day
11
Operaciones posibles
- date2 = date1 + timedelta (date2 son los días de tipo timedelta.days, restados de date1)
- date2 = date1 - timedelta
- timedelta = date1 - date2
- date1 < date2 (y otro tipo de comparaciones)
fecha
datetime.date(2020, 9, 1)
hoy
datetime.date(2020, 10, 11)
fecha < hoy
True
Métodos de instancia
fecha1 = datetime.date(2020, 8, 1)
fecha1
datetime.date(2020, 8, 1)
# El lunes es 0 y el domingo es 6
fecha1.weekday()
5
# El lunes es 1 y el domingo es 7
fecha1.isoweekday()
6
datetime.time
Información
La clase datetime.time se utiliza para tiempos.
Parámetros
Una instancia de este tipo puede generarse especificando los siguientes parámetros:
datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
Para especificar tzinfo:
datetime.time(12, 35)
datetime.time(12, 35)
tz_info = datetime.timezone.utc
tz_info
datetime.timezone.utc
hora2 = datetime.time(12, 35, tzinfo = tz_info)
hora2
datetime.time(12, 35, tzinfo=datetime.timezone.utc)
Otras opciones para generarlo
hora = datetime.time.fromisoformat("12:35:40")
hora
datetime.time(12, 35, 40)
hora_3 = datetime.time.fromisoformat("12:35")
hora_3
datetime.time(12, 35)
Atributos
- hour
- minute
- second
- microsecond
- tzinfo
hora.hour
12
print(hora.tzinfo)
None
hora2.tzinfo
datetime.timezone.utc
Operaciones posibles
time1 < time2 (y otro tipo de comparaciones)
hora < hora_3
False
Métodos de instancia
hora2
datetime.time(12, 35, tzinfo=datetime.timezone.utc)
hora2.tzname()
'UTC'
datetime.datetime
Información
La clase datetime.datetime se utiliza para combinaciones de fecha y hora.
Parámetros
datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
dtime = datetime.datetime(2020, 8, 1, 19, 20, 55)
dtime
datetime.datetime(2020, 8, 1, 19, 20, 55)
dtime2 = datetime.datetime(2020, 8, 1, 19, 20, 55, tzinfo = datetime.timezone.utc)
dtime2
datetime.datetime(2020, 8, 1, 19, 20, 55, tzinfo=datetime.timezone.utc)
Otras opciones para generarlo
datetime.datetime.today()
datetime.datetime(2020, 10, 12, 9, 35, 15, 817572)
ahora = datetime.datetime.now()
ahora
datetime.datetime(2020, 10, 12, 9, 36, 25, 92534)
Atributos
- year
- month
- day
- hour
- minute
- second
- microsecond
- tzinfo
ahora.year
2020
print(ahora.tzinfo)
None
Operaciones posibles
- datetime2 = datetime1 + timedelta
- datetime2 = datetime1 - timedelta
- timedelta = datetime1 - datetime2
- datetime1 < datetime2 (y otro tipo de comparaciones)
dtime
datetime.datetime(2020, 8, 1, 19, 20, 55)
dtime2 = datetime.datetime(2020, 8, 2, 19, 20, 55)
dtime2
datetime.datetime(2020, 8, 2, 19, 20, 55)
dtime2 - dtime
datetime.timedelta(days=1)
dtime2 > dtime
True
Métodos de instancia
dtime
datetime.datetime(2020, 8, 1, 19, 20, 55)
dtime.time()
datetime.time(19, 20, 55)
dtime.date()
datetime.date(2020, 8, 1)
# Lunes es 0
dtime.weekday()
5
# Lunes es 1
dtime.isoweekday()
6
datetime.timedelta
Información
La clase datetime.timedelta se utiliza para duraciones, expresando la diferencia entre dos instancias de tipo date, time o datetime, con resolución de microsegundos.
Parámetros
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
tdelta = datetime.timedelta(5, 10)
tdelta
datetime.timedelta(days=5, seconds=10)
Otras opciones para generarlo
momento1 = datetime.datetime(2020, 5, 1)
momento1
datetime.datetime(2020, 5, 1, 0, 0)
momento2 = datetime.datetime(2020, 5, 6)
momento2
datetime.datetime(2020, 5, 6, 0, 0)
tdelta2 = momento2 - momento1
tdelta2
datetime.timedelta(days=5)
Atributos
- days
- seconds
- microseconds
tdelta
datetime.timedelta(days=5, seconds=10)
tdelta.days
5
tdelta.seconds
10
tdelta.microseconds
0
Operaciones posibles
- t1 = t2 + t3
- t1 = t2 - t3
- f = t2 / t3
- t1 != t2 (y otro tipo de comparaciones)
- Etc.
tdelta
datetime.timedelta(days=5, seconds=10)
tdelta2
datetime.timedelta(days=5)
result = tdelta == tdelta2
result
False
Métodos de instancia
tdelta
datetime.timedelta(days=5, seconds=10)
tdelta.total_seconds()
432010.0
