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
Con 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)
Resumen
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



















