Python: Módulo: DateTime
El módulo datetime
nos permite gestionar fechas y horas de forma muy sencilla
Podemos construir una fecha con su hora con el método constructor con el siguiente formato: datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
especificando la fecha y hora, siendo sólo obligatorios el año, el mes y el día o con now()
que nos crea con la fecha y hora actuales.
from datetime import datetime # 10 de junio de 2013 a las 22:43:02 # Sólo son obligatorios el año, el mes y el día # AAAA M DD HH MM SS fecha = datetime(2013, 6, 10, 22, 43, 12) fecha datetime.datetime(2013, 6, 10, 22, 43, 12) fecha = datetime.now() fecha datetime.datetime(2019, 1, 29, 19, 55, 48, 67435)
Una vez creada la fecha NO podemos modificar los valores por lo que tendremos que volver a crear con la nueva fecha.
Tenemos diversos métodos para obtener cada uno de los valores individuales:
from datetime import datetime fecha = datetime.now() # Fecha y hora actual print(fecha) # AAAA-MM-DD HH:MM:SS.microsegundos print(fecha.year) # año print(fecha.month) # mes print(fecha.day) # día print(fecha.hour) # hora print(fecha.minute) # minutos print(fecha.second) # segundos print(fecha.microsecond) # microsegundos print("{}:{}:{}".format(fecha.hour, fecha.minute, fecha.second)) 20:5:56 print("{}/{}/{}".format(fecha.day, fecha.month, fecha.year)) 29/1/2019
Pero para poder mostrar fechas y horas formateadas de forma muy sencilla y potente tenemos el método strftime(format)
que nos permite especificar como se muestra la fecha y hora:
from datetime import datetime fecha = datetime.now() # Fecha y hora actual print(fecha.strftime("Las %H:%M:%S del %A %d de %B del %Y")) Las 20:05:56 del Tuesday 29 de January del 2019
Como podemos ver el control es total pudiendo añadir texto y formato que queramos. Para un listado de todos los códigos de formateo tenemos: lista de códigos.
Por defecto el idioma es del sistema, si éste no fuese el correcto o que queremos podemos cambiarlo con locale
.
Podemos realizar operaciones y cálculos con las fecha y horas para ello necesitamos importar el método timedelta
y crear una variable con timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
que usaremos para operar con una fecha.
from datetime import datetime, timedelta # Fecha y hora actual fecha = datetime.now() # creamos una variable con 1 semana una_semana = timedelta(weeks=1) una_semana_menos = fecha - una_semana dos_semana_mas = fecha + una_semana + una_semana print(fecha.strftime("Las %H:%M:%S del %A %d de %B del %Y")) Las 20:05:56 del Tuesday 29 de January del 2019 print(una_semana_menos.strftime("Las %H:%M:%S del %A %d de %B del %Y")) Las 20:24:50 del Tuesday 22 de January del 2019 print(dos_semana_mas.strftime("Las %H:%M:%S del %A %d de %B del %Y")) Las 20:24:50 del Tuesday 05 de February del 2019
Para sacar que hora es en diferentes horarios del planeta podemos hacer lo siguiente:
from datetime import datetime, timedelta import pytz # Fecha y hora actual zona local (España) fecha_local = datetime.now() # Fecha y hora actual zona Nueva York fecha_ny = datetime.now(pytz.timezone('America/New_York')) print(fecha.strftime("Las %H:%M:%S del %A %d de %B del %Y")) Las 20:38:00 del Tuesday 29 de January del 2019 print(fecha_ny.strftime("Las %H:%M:%S del %A %d de %B del %Y")) Las 14:38:07 del Tuesday 29 de January del 2019
pytz
mediante pip3 install pytz
.
Si queremos mostrar todas las zonas horarias:
print(pytz.all_timezones)
Más información en: datetime