Saltar al contenido

Python DateTime, TimeDelta, Strftime(Formato) con ejemplos

diciembre 8, 2019

En Python, date, time and datetime las clases proporcionan una serie de funciones para tratar con fechas, horas e intervalos de tiempo. La fecha y la hora son un objeto en Python, así que cuando los manipulas, estás manipulando objetos y no cadenas o marcas de tiempo. Cada vez que se manipulan las fechas o la hora, es necesario importar la función de fecha y hora.

 

Las clases de fecha y hora en Python se clasifican en 5 clases principales.

  • date – Manipular la fecha justa ( Mes, día, año)
  • time – Tiempo independiente del día (Hora, minuto, segundo, microsegundo)
  • datetime – Combinación de hora y fecha (mes, día, año, hora, segundo, microsegundo)
  • timedelta- Una duración de tiempo usada para manipular fechas
  • tzinfo- Una clase abstracta para tratar con zonas horarias

En este tutorial, aprenderemos-

  • Cómo usar Date & DateTime Class
  • Imprimir Fecha usando date.today()
  • Fecha y hora actual de Python: now() today()
  • Cómo formatear la salida de fecha y hora con Strftime()
  • Cómo usar objetos Timedelta

Cómo usar la clase Date & DateTime

Paso 1 ) Antes de ejecutar el código para datetime, es importante que importe los módulos de date time como se muestra en la siguiente captura de pantalla.

Estas instrucciones de importación son piezas predefinidas de funcionalidad en la librería Python que le permiten manipular fechas y horas, sin necesidad de escribir ningún código.

Considere los siguientes puntos antes de ejecutar el código de fecha y hora

de fecha/hora fecha importación 

Esta línea le dice al intérprete de Python que desde el módulo de hora de fecha importe la clase de fecha No estamos escribiendo el código para esta funcionalidad de fecha, por desgracia sólo lo estamos importando para nuestro uso

Paso 2 ) A continuación, creamos una instancia del objeto fecha.

Paso 3 ) Luego, imprimimos la fecha y ejecutamos el código.

El resultado es el esperado.

Imprimir Fecha usando date.today()

date.today tiene varias propiedades asociadas. Podemos imprimir día/mes/año individual y muchas otras cosas

Veamos un ejemplo

Número del día de la semana de hoy

La función date.today() también le da el número del día de la semana. Aquí está la Tabla de días de la semana que comienza con lunes como 0 y domingo como 6 Día Número de día de la semana Lunes 0 Martes 1 Miércoles 2 Jueves 3 Viernes 4 Sábado 5 Domingo 6

El Número de día de la semana es útil para arreglos cuyo índice depende del Día de la semana.

Fecha y hora actual de Python: now() today()

Paso 1) Al igual que Date Objects, también podemos usar “DATETIME OBJECTS” en Python. Da la fecha junto con la hora en horas, minutos, segundos y milisegundos.

Cuando ejecutamos el código para datetime, nos da la salida con la fecha y hora actual.

Paso 2) Con “DATETIME OBJECT”, también puede llamar a la clase de tiempo.

Supongamos que queremos imprimir sólo la hora actual sin la fecha.

t = datetime.time(datetime.now())
>

  • Habíamos importado la clase de tiempo. Le asignaremos el valor actual de la hora usando datetime.now()
  • Estamos asignando el valor del tiempo actual a la variable t.

Y esto me dará el tiempo justo. Así que vamos a ejecutar este programa.

Bien, puedes ver que aquí tengo la fecha y la hora. Y luego la siguiente línea, tengo justo el tiempo por sí mismo

Paso 3) Aplicaremos nuestro indexador de días de la semana a nuestra arrayList de días de la semana para saber qué día es hoy

  • Al operador de días laborables (wd) se le asigna el número del número (0-6) dependiendo de cuál sea el día laborable actual. Aquí declaramos la matriz de la lista por días (Lunes, Martes, Miércoles….Domingo).
  • Utilice ese valor de índice para saber qué día es. En nuestro caso, es el número 2, y representa el miércoles, así que en la salida imprimirá “Which is a Wednesday”.

Aquí está el código completo para obtener la fecha y hora actuales usando datetime now

Aquí está el código completo para obtener la fecha y hora actuales usando datetime now

a partir de la fecha hora fecha de importación
desde la fecha y hora de importación
desde fecha hora importación fecha hora
def main():
    ##DATETIME OBJECTS
    #Consigue la fecha de hoy de la clase de fecha y hora
    hoy=fechahora.ahora()
    #print (hoy)
    # Obtén la hora actual
    #t = datetime.time(datetime.now())
    #print "La hora actual es", t
    #día de la semana devuelve de 0 (lunes) a 6 (domingo)
    wd=fecha.día de la semana (hoy)
    #Los días empiezan a las 0 para el lunes
    days= ["lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo"]
    print("Hoy es el día %d" % wd)
    print("which is a " + days[wd])
si __nombre__== "__main__":
    main()

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>)

Cómo formatear la salida de fecha y hora con Strftime()

Hasta ahora hemos aprendido a usar datetimetime y date object en Python. Avanzaremos un paso más y aprenderemos a usar una función de formateo para formatear Hora y Fecha.

Paso 1) Primero veremos un simple paso de cómo formatear el año. Es mejor entender con un ejemplo.

  • Usamos la función ” strftime” para formatear.
  • Esta función utiliza un código de control diferente para dar una salida.
  • Cada código de control se parece a diferentes parámetros como año, mes, día de la semana y fecha [(%a/%Y – Año), (%a/%A- día de la semana), (%b/%B- mes), (%d – día del mes)] .
  • En nuestro caso, es (“%Y”) que se asemeja al año, imprime el año completo con el siglo (por ejemplo, 2018).

Paso 2) Ahora si reemplaza (“%Y”) con minúsculas, es decir, (“%y) y ejecuta el código, la salida se mostrará sólo (18) y no (2018). El siglo del año no se mostrará como se muestra en la imagen de abajo

Paso 3) La función Strf puede declarar la fecha, día, mes y año por separado. También con pequeños cambios en el código de control de la función strftime puede formatear el estilo del texto.

Dentro de la función strftime, si sustituye (%a) por A mayúscula, es decir, (%A), la salida se imprimirá como “Firday” en lugar de sólo una abreviatura “Fri”.

Paso 4) Con la ayuda de la función “Strftime” también podemos recuperar la hora, fecha o ambas del sistema local.

  1. %C- indica la fecha y hora local
  2. %x- indica la fecha local
  3. %X- indica la hora local

En la salida, puede ver el resultado como se esperaba

Paso 5) La “función strftime” le permite llamar la hora en cualquier formato 24 horas o 12 horas.

Sólo definiendo el código de control como %I/H para la hora, % M para el minuto, %S para el segundo, se puede llamar al tiempo para diferentes formatos

.

12 horas se declara la hora[print now.strftime(“%I:%M:%S %P) ]

24 horas se declara la hora[print now.strftime(“%H:%M”)]

Aquí está el código completo para convertir datetime en objeto String.

#
#Ejemplo de archivo para formatear la hora y la fecha de salida
#
desde fecha hora importación fecha hora
def main():
   #Las horas y fechas se pueden formatear utilizando un conjunto de cadenas predefinidas
   #Códigos de control
      now= datetime.now() #obtener la fecha y hora actuales
      #%c - fecha y hora local, %x- fecha local, %X- hora local
      print(now.strftime("%c"))
      print(now.strftime("%x"))
      print(now.strftime("%X"))
##### Formato de hora
      #%I/%H - 12/24 Hora, %M - minuto, %S - segundo, %p - local$0027s AM/PM
      print(now.strftime("%I:%M:%S %p")) # 12-Hora:Minuto:Segundo:AM
      print(now.strftime("%H:%M")) # 24 Horas:Minuto
si __nombre__== "__main__":
    main()

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>)

Cómo usar objetos Timedelta

Con los objetos timedelta, puede estimar el tiempo tanto para el futuro como para el pasado. En otras palabras, es un período de tiempo para predecir cualquier día, fecha u hora especial.

Recuerde que esta función no es para imprimir la hora o la fecha, sino algo para CALCULAR sobre el futuro o el pasado . Veamos un ejemplo para entenderlo mejor.

Paso 1) Para ejecutar Timedelta Objects, primero debe declarar la declaración de importación y luego ejecutar el código

  1. Escribir una declaración de importación para timedelta
  2. Ahora escriba el código para imprimir el objeto desde el delta del tiempo como se muestra en la captura de pantalla
  3. Ejecuta el código. El timedelta representa un lapso de 365 días, 8 horas y 15 minutos e imprime el mismo

¿Confuso? El siguiente paso ayudará-

Paso 2) Obtengamos la fecha y hora de hoy para comprobar si nuestra declaración de importación está funcionando bien. Cuando se ejecuta el código, se imprime la fecha de hoy, lo que significa que nuestra declaración de importación está funcionando bien

Paso 3) Veremos cómo podemos recuperar la fecha dentro de un año a través de objetos delta. Cuando ejecutamos el código, nos da el resultado esperado.

Paso 4) Otro ejemplo de cómo se puede usar delta de tiempo para calcular la fecha futura a partir de la fecha y hora actuales

Paso 5) Veamos un ejemplo más complejo. Me gustaría determinar cuántos días después del Año Nuevo. Así es como procederemos

  • Usando today= date.today() obtendremos la fecha de hoy
  • Sabemos que el año nuevo siempre es el 1 de enero, pero el año podría ser diferente. Usando nyd= date(today.year,1,1) almacenamos el nuevo año en la variable nyd
  • if nyd < today: compara si la fecha actual es mayor que el año nuevo. Si es así, entra en el bucle while
  • ((today-nyd).days) da la diferencia entre la fecha actual y el año nuevo en DÍAS

El resultado muestra que “El día de Año Nuevo ya pasó hace 11 días”.

Aquí está el código de trabajo completo

#
# Archivo de ejemplo para trabajar con objetos timedelta
#
desde la fecha y hora de importación
desde la fecha y hora de importación
desde fecha hora importación fecha hora
de la fecha y hora de importación timedelta
# construye un timedelta básico e imprímelo
print (timedelta(days=365, hours=8, minutes=15))
# imprime la fecha de hoy
imprimir ("Hoy es: " + str(datetime.now()))
# imprime la fecha de hoy dentro de un año
print ("dentro de un año será:" + str(datetime.now() + timedelta(days=365))))
# crear un timedelta que utilice más de un argumento
# print (en una semana y 4 días será " + str(datetime.now() + timedelta(weeks=1, days=4)))
# ¿Cuántos días faltan para el Año Nuevo?
today = date.today() # get today date
nyd = date(today.year, 1, 1) # get New Year Day for the same year
# use la comparación de fechas para ver si el día de Año Nuevo ya ha pasado para este año
# si lo ha hecho, use la función replace() para obtener la fecha para el próximo año
si nyd hoy:
    print ("El día de Año Nuevo ya pasó por %d hace días" % ((hoy - nyd).days))

Ejemplo de Python 2

a partir de la fecha hora fecha de importación
desde la fecha y hora de importación
desde fecha hora importación fecha hora
def main():
 	##DATETIME OBJECTS
    #Consigue la fecha de hoy de la clase de fecha y hora
	hoy=fechahora.ahora()
	#Imprimir hoy
	# Obtén la hora actual
	#t = datetime.time(datetime.now())
	#print "La hora actual es", t
	#día de la semana devuelve de 0 (lunes) a 6 (domingo)
        wd = fecha.día de la semana (hoy)
	#Los días empiezan a las 0 para el lunes
        days= ["lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo"]
        imprimir "Hoy es el día %d" % wd
        print "which is a " + days[wd]
si __nombre__== "__main__":
    main()
#
#Ejemplo de archivo para formatear la hora y la fecha de salida
#
desde fecha hora importación fecha hora
def main():
   #Las horas y fechas se pueden formatear utilizando un conjunto de cadenas predefinidas
   #Códigos de control
      now= datetime.now() #obtener la fecha y hora actuales
      #%c - fecha y hora local, %x- fecha local, %X- hora local
      imprimir ahora.strftime("%c")
      imprimir ahora.strftime("%x")
      imprimir ahora.strftime("%X")
##### Formato de hora
      #%I/%H - 12/24 Hora, %M - minuto, %S - segundo, %p - local$0027s AM/PM
      print now.strftime("%I:%M:%S %p") # 12-Horas:Minuto:Segundo:AM
      print now.strftime("%H:%M") # 24-Horas:Minuto
si __nombre__== "__main__":
    main()
#
# Archivo de ejemplo para trabajar con objetos timedelta
#
desde la fecha y hora de importación
desde la fecha y hora de importación
desde fecha hora importación fecha hora
de la fecha y hora de importación timedelta
# construye un timedelta básico e imprímelo
print timedelta(días=365, horas=8, minutos=15)
# imprime la fecha de hoy
impresión "Hoy es: " + str(datetime.now())
# imprime la fecha de hoy dentro de un año
imprimir "dentro de un año será:" + str(datetime.now() + timedelta(days=365)))
# crear un timedelta que utilice más de un argumento
# imprimir "en una semana y 4 días será " + str(datetime.now() + timedelta(weeks=1, days=4))
# ¿Cuántos días faltan para el Año Nuevo?
today = date.today() # get today date
nyd = date(today.year, 1, 1) # get New Year Day for the same year
# use la comparación de fechas para ver si el día de Año Nuevo ya ha pasado para este año
# si lo ha hecho, use la función replace() para obtener la fecha para el próximo año
si nyd hoy:
    imprimir "El día de Año Nuevo ya ha pasado %d días atrás" % ((today - nyd).days)

Resumen

Para manipular fechas y horas de forma simple y compleja, el módulo datetime proporciona diferentes clases o categorías como

  • date – Manipular la fecha justa ( Mes, día, año)
  • time – Tiempo independiente del día (Hora, minuto, segundo, microsegundo)
  • datetime – Combinación de hora y fecha (mes, día, año, hora, segundo, microsegundo)
  • timedelta- Una duración de tiempo usada para manipular fechas
  • tzinfo- Una clase abstracta para tratar con zonas horarias

Uso de objetos de fecha y hora

  • La importación de objetos de fecha y hora antes de ejecutar el código es obligatoria
  • Uso de la función date.today para imprimir la fecha/mes/año individual, así como para indexar el día
  • Usando el objeto date.time para obtener la hora en horas, minutos, segundos y milisegundos

Formatear Time-Out con “str f time function”

  • Use “str f time function” para cambiar el formato del año
  • Imprimir día, fecha, mes y año por separado,
  • Tiempo de llamada para cualquier formato 12 hrs o 24 hrs

Objetos Timedelta

  • Con los objetos timedelta, puede estimar el tiempo tanto para el futuro como para el pasado
  • Calcular el total de días que quedan para el día (cumpleaños) especial a partir de la hora actual
  • Calcular el total de días pasados por día especial (cumpleaños) a partir de la hora actual

https://openanalytics.es/tutorial-de-python-xml-parser-leer-ejemplo-de-archivo-xml-minidom-elementtree/

(abre en una nueva pestaña)

https://openanalytics.es/python-datetime-timedelta-strftimeformato-con-ejemplos/