arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

Fechas con Python

Eduardo Ismael Garcia

Full Stack Developer at Código Facilito.

av_timer 1 Min. de lectura

remove_red_eye 326419 visitas

calendar_today 15 Febrero 2019

Para que nosotros podamos trabajar con fechas utilizando Python haremos uso de la librería datetime. En esta ocasión listaremos un par de ejemplos que pueden ayudarte a comprender de una mejor manera dicha librería.

Obtener la fecha actual.

#Es necesario importar las depencendias necesarias
from datetime import date
from datetime import datetime

#Día actual
today = date.today()

#Fecha actual
now = datetime.now()

print(today)
print(now)

Atributos

Una vez obtengamos la fecha actual podremos obtener el día, mes, año, hora, minutos, segundos de esta.

#Date
print("El día actual es {}".format(today.day))
print("El mes actual es {}".format(today.month))
print("El año actual es {}".format(today.year))


#Datetime
print("El día actual es {}".format(now.day))
print("El mes actual es {}".format(now.month))
print("El año actual es {}".format(now.year))

print("La hora actual es {}".format(now.hour))
print("El minuto actual es {}".format(now.minute))
print("El segundo actual es {}".format(now.second))

Nueva fecha

Si nosotros así lo deseamos podemos trabajar con una fecha en particular.

new_date = datetime(2019, 2, 28, 10, 15, 00, 00000)

Los argumentos serán: Año, Mes, Día, Hora, Minutos, Segundos, Milisegundos.

Operaciones

En ocasiones tendremos la necesidad de realizar ciertas operaciones con fechas, ya sea agregar días, restar años o simplemente realizar comparaciones. Con Python todas estas operaciones podremos realizarlas sin ningún problema.

from datetime import datetime
from datetime import timedelta

#Sumar dos días a la fecha actual
now = datetime.now()
new_date = now + timedelta(days=2)
print(new_date)

#Comparación
if now < new_date:
    print("La fecha actual es menor que la nueva fecha")

Formato de fechas

Aunque las fechas en Python ya poseen un formato legible para los humanos, en ocasiones necesitaremos ser más explícitos para no dejar espacio a la ambiguuedad, para ello, haremos uso del método strftme.

now = datetime.now()
format = now.strftime('Día :%d, Mes: %m, Año: %Y, Hora: %H, Minutos: %M, Segundos: %S')
print(format)
  • %d Día
  • %m Mes
  • %Y Año
  • %H Hora
  • %M Minutos
  • %S segundos

Algo que en lo particular me gusta hacer es definir una función que me permita obtener un formato mucho más amigable.

from datetime import datetime

def current_date_format(date):
    months = ("Enero", "Febrero", "Marzo", "Abri", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
    day = date.day
    month = months[date.month - 1]
    year = date.year
    messsage = "{} de {} del {}".format(day, month, year)

    return messsage

now = datetime.now()
print(current_date_format(now))