Python FechaHora, HoraDelta, Strftime (Formato) con ejemplos
Las clases de fecha y hora en Python se clasifican en 5 clases principales.
- fecha: manipular solo la fecha (mes, día, año)
- time – Hora 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 utilizada para manipular fechas
- tzinfo: una clase abstracta para tratar con zonas horarias
Cómo utilizar la clase Date & DateTime
Paso 1) Antes de ejecutar el código para el formato de fecha y hora en Python, es importante que importes el Python módulos de fecha y hora como se muestra en la captura de pantalla siguiente.
Estas declaraciones de importación son piezas de funcionalidad predefinidas en el Python Biblioteca que te permite manipular fechas y horas, sin escribir ningún código.
Tenga en cuenta los siguientes puntos antes de ejecutar la Python código de formato de fecha y hora
from datetime import date
Esta línea le dice al Python intérprete para importar la clase de fecha desde el módulo de fecha y hora en Python. No estamos escribiendo el código para esta funcionalidad de fecha, lamentablemente solo lo importamos para nuestro uso.
Paso 2) A continuación, creamos una instancia del objeto de fecha.
Paso 3) A continuación, imprimimos la fecha y ejecutamos el código.
El resultado es el esperado.
Imprimir fecha usando date.today()
date.today
La función tiene varias propiedades asociadas. Podemos imprimir día/mes/año individual y muchas otras cosas.
Veamos un ejemplo
Número del día laborable de hoy
La función date.today() también le proporciona el número del día de la semana. Aquí está la tabla de días laborables que comienza con Monday como 0 y domingo como 6
Día | Número de día de la semana |
---|---|
Monday | 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 matrices cuyo índice depende del día de la semana.
Python Fecha y hora actuales: ahora() hoy()
Paso 1) Al igual que los objetos de fecha, también podemos usar “OBJETOS DE FECHA Y HORA” in Python. Python Los objetos de fecha y hora dan la fecha junto con la hora en horas, minutos, segundos y milisegundos.
Cuando ejecutamos el código para fecha y hora, proporciona el resultado con la fecha y hora actuales.
Paso 2) Con “DATETIME OBJECT”, también puedes llamar a la clase de tiempo.
Supongamos que queremos imprimir solo la hora actual sin la fecha.
t = datetime.time(datetime.now())
- Habíamos importado la clase de tiempo. Le asignaremos el valor actual de tiempo usando datetime.now()
- Estamos asignando el valor de la hora actual a la variable t.
Y esto me dará el tiempo justo. Así que ejecutemos este programa.
Bien, entonces puedes ver que aquí tengo la fecha y la hora. Y luego, en la siguiente línea, tengo el tiempo por sí solo.
Paso 3) Aplicaremos nuestro indexador de días laborables a nuestra lista de matrices de días laborables para saber qué día es hoy.
- Al operador de días laborables (wd) se le asigna un número entre (0 y 6) según el día laborable actual. Aquí declaramos la matriz de la lista para los 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, por lo que en el resultado imprimirá "Que es miércoles".
Aquí está el código completo para obtener la fecha y hora actuales usando datetime ahora
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Cómo formatear la salida de fecha y hora con Strftime()
A partir de ahora hemos aprendido cómo usar fecha, hora y fecha. objeto en Python. Avanzaremos un paso más y aprenderemos cómo utilizar una función de formato para formatear la hora y la fecha.
Paso 1) Primero veremos un paso sencillo de cómo formatear el año. Es mejor entenderlo con un ejemplo.
- Usamos el “función strftime” para formatear.
- Esta función utiliza diferentes código de control para dar una salida.
- Cada código de control se asemeja a diferentes parámetros como año, mes, día de la semana y fecha. [(%y/%Y – Año), (%a/%A- día laborable), (%b/%B- mes), (%d – día del mes)] .
- En nuestro caso, es (“%Y”) que se parece 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 mostrará solo (18) y no (2018). El siglo del año no se mostrará como se muestra en la siguiente captura de pantalla.
Paso 3) La función Strf puede declarar la fecha, día, mes y año por separado. Además con pequeños cambios en el código de control en la función strftime puedes formatear el estilo del texto.
Dentro de la función strftime, si reemplaza (%a) con A mayúscula, es decir, (%A), la salida se imprimirá como "Firday" en lugar de solo una abreviatura "Fri".
Paso 4) Con la ayuda de la función "Strftime" también podemos recuperar la hora, la fecha o ambas del sistema local.
- %C- indica la fecha y hora local
- %x- indica la fecha local
- %X- indica la hora local
En el resultado, puede ver el resultado esperado.
Paso 5) La “función strftime” le permite llamar la hora en cualquier formato de 24 horas o 12 horas.
Con solo definir un código de control como %I/H para horas, % M para minutos, %S para segundos, se puede solicitar la hora 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 fecha y hora en un objeto String.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
¿Qué es Timedelta en Python?
Delta de tiempo en Python es un objeto que representa la duración. Se utiliza principalmente para calcular la duración entre dos fechas y horas. También se utiliza para recuperar el objeto con alguna fecha y hora delta. El objeto timedelta admite operaciones matemáticas como sumas, restas, multiplicaciones, divisiones, etc.
Cómo utilizar objetos Timedelta
En nuestro Python objetos timedelta, puedes estimar el tiempo tanto para el futuro como para el pasado. En otras palabras, es un lapso 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 Python Ejemplo de timedelta para entenderlo mejor.
Paso 1) Para ejecutar objetos Timedelta, primero debe declarar la declaración de importación y luego ejecutar el código
- Escribir una declaración de importación para timedelta
- Ahora escribe el código para imprimir el objeto desde el tiempo delta como se muestra en la captura de pantalla
- Ejecute el código. El timedelta representa un lapso de 365 días, 8 horas y 15 minutos e imprime lo mismo.
¿Confuso? El siguiente paso ayudará
Paso 2) Obtengamos la fecha y hora de hoy para comprobar si nuestra declaración de importación funciona bien. Cuando se ejecuta el código, 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, arroja el resultado esperado.
Paso 4) Otro ejemplo de cómo se puede utilizar el delta temporal para calcular una 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 faltan para el Año Nuevo. Así es como procederemos
- Usando hoy = fecha. hoy () 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
- Si nyd < today: compara si la fecha actual es posterior al año nuevo. Si es así, ingresa al bucle while
- ((today-nyd).days) da la diferencia entre una 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.
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Ejemplo
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)
Resum
Para manipular fechas y horas tanto de forma simple como compleja, el módulo datetime proporciona diferentes clases o categorías como
- fecha: manipular solo la fecha (mes, día, año)
- time – Hora 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 utilizada para manipular fechas
- tzinfo: una clase abstracta para tratar con zonas horarias
Usando objetos de fecha y hora
- Importar objetos de fecha y hora antes de ejecutar el código es obligatorio
- Uso de la función date.today para imprimir fecha/mes/año individual, así como para indexar el día
- Usar el objeto date.time para obtener la hora en horas, minutos, segundos y milisegundos
Formateo del tiempo de espera con la “función de tiempo str f”
- Utilice la “función de tiempo str f” 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, puedes estimar el tiempo tanto del futuro como del pasado.
- Calcule el total de días que quedan para el día especial (cumpleaños) a partir de la hora actual
- Calcule el total de días transcurridos para el día especial (cumpleaños) a partir de la hora actual