Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias

Dominando datetime en Python

Descubre cómo trabajar con fechas y horas en Python a través de ejemplos prácticos y explicaciones claras.

Video: datetime en Python – Trabaja con Fechas y Horas

El módulo datetime de Python proporciona herramientas poderosas para manipular fechas y horas. A continuación recorremos tareas comunes, desde obtener el momento actual hasta formateo y manejo de zonas horarias.


Ejemplo 1: Obtener Fecha y Hora Actual

import datetime
datetime_object = datetime.datetime.now()
print(datetime_object)

La salida se verá como:

2018-12-19 09:26:03.478039

Aquí importamos el módulo con import datetime. La clase datetime contiene un método now() que devuelve la fecha y hora local.


Ejemplo 2: Obtener Fecha Actual

import datetime
date_object = datetime.date.today()
print(date_object)

La salida será:

2018-12-19

Usamos today() de la clase date para obtener la fecha actual del calendario.


Explorando el módulo datetime

Ejecuta dir(datetime) para listar todos los atributos y clases:

import datetime
print(dir(datetime))

Salida:

['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']

Clases clave incluyen date, time, datetime y timedelta.


Clase datetime.date

La clase date representa una fecha de calendario (año, mes, día).


Ejemplo 3: Crear un Objeto Date

import datetime
d = datetime.date(2019, 4, 13)
print(d)

Resultado:

2019-04-13

Aquí date() es un constructor que acepta year, month y day como argumentos.

La variable a es una instancia de date.


Importando solo la clase date:

from datetime import date
a = date(2019, 4, 13)
print(a)

Ejemplo 4: Fecha Actual

Usa el classmethod today():

from datetime import date
today = date.today()
print("Fecha actual =", today)

Ejemplo 5: Desde Timestamp

Un timestamp Unix cuenta segundos desde 1970-01-01 UTC. Conviértelo con fromtimestamp():

from datetime import date
timestamp = date.fromtimestamp(1326244364)
print("Fecha =", timestamp)

Salida:

Fecha = 2012-01-11

Ejemplo 6: Acceder a Año, Mes, Día

from datetime import date
today = date.today()
print("Año actual:", today.year)
print("Mes actual:", today.month)
print("Día actual:", today.day)

datetime.time

La clase time almacena una hora de reloj sin fecha.


Ejemplo 7: Crear Objetos Time

from datetime import time
a = time()
print("a =", a)
b = time(11, 34, 56)
print("b =", b)
c = time(hour=11, minute=34, second=56)
print("c =", c)
d = time(11, 34, 56, 234566)
print("d =", d)

Resultado:

a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566

Ejemplo 8: Inspeccionar Componentes de Time

from datetime import time
a = time(11, 34, 56)
print("hora =", a.hour)
print("minuto =", a.minute)
print("segundo =", a.second)
print("microsegundo =", a.microsecond)

Salida:

hora = 11 minuto = 34 segundo = 56 microsegundo = 0

datetime.datetime

La clase datetime combina información de fecha y hora.


Ejemplo 9: Crear un Objeto Datetime

from datetime import datetime
# año, mes, día
A = datetime(2018, 11, 28)
print(A)
# especificación completa
B = datetime(2017, 11, 28, 23, 55, 59, 342380)
print(B)

Resultado:

2018-11-28 00:00:00 2017-11-28 23:55:59.342380

Año, mes y día son obligatorios; hora, minuto, segundo y microsegundo default a cero.


Ejemplo 10: Inspeccionar Componentes y Timestamp

from datetime import datetime
A = datetime(2017, 11, 28, 23, 55, 59, 342380)
print("año =", A.year)
print("mes =", A.month)
print("día =", A.day)
print("hora =", A.hour)
print("minuto =", A.minute)
print("timestamp =", A.timestamp())

Salida:

año = 2017 mes = 11 día = 28 hora = 23 minuto = 55 timestamp = 1511913359.34238

datetime.timedelta

Un objeto timedelta representa una duración entre dos fechas u horas.


Ejemplo 11: Diferencia Entre Fechas y Horas

from datetime import datetime, date
T1 = date(year=2018, month=7, day=12)
T2 = date(year=2017, month=12, day=23)
T3 = T1 - T2
print("T3 =", T3)
T4 = datetime(year=2018, month=7, day=12, hour=7, minute=9, second=33)
T5 = datetime(year=2019, month=6, day=10, hour=5, minute=55, second=13)
T6 = T4 - T5
print("T6 =", T6)
print("tipo de T3 =", type(T3))
print("tipo de T6 =", type(T6))

Salida:

T3 = 201 days, 0:00:00 T6 = -333 days, 1:14:20 tipo de T3 = <class 'datetime.timedelta'> tipo de T6 = <class 'datetime.timedelta'>

Ejemplo 12: Restando Objetos Timedelta

from datetime import timedelta
T1 = timedelta(weeks=2, days=5, hours=1, seconds=33)
T2 = timedelta(days=4, hours=11, minutes=4, seconds=54)
T3 = T1 - T2
print("T3 =", T3)

Salida:

T3 = 14 days, 13:55:39

Ejemplo 13: Timedelta Negativo

from datetime import timedelta
T1 = timedelta(seconds=33)
T2 = timedelta(seconds=54)
T3 = T1 - T2
print("T3 =", T3)
print("abs(T3) =", abs(T3))

Salida:

T3 = -1 day, 23:59:39 abs(T3) = 0:00:21

Ejemplo 14: Segundos Totales en un Timedelta

from datetime import timedelta
T = timedelta(days=5, hours=1, seconds=33, microseconds=233423)
print("segundos totales =", T.total_seconds())

Salida:

segundos totales = 435633.233423

Puedes sumar fechas, multiplicar un timedelta por un número y dividirlo por un float para escalar duraciones.


Formateo y Parseo de Fechas

Diferentes locales usan formatos de fecha variados (ej. mm/dd/yyyy en EE.UU. vs dd/mm/yyyy en UK). Los métodos strftime() y strptime() de Python ayudan a convertir entre objetos datetime y cadenas formateadas.


strftime() de Python – datetime a cadena

from datetime import datetime
now = datetime.now()
# Hora:minuto:segundo
T = now.strftime("%H:%M:%S")
print("hora:", T)
# Formato US
S1 = now.strftime("%m/%d/%Y, %H:%M:%S")
print("S1:", S1)
# Formato UK
S2 = now.strftime("%d/%m/%Y, %H:%M:%S")
print("S2:", S2)

Salida típica:

hora: 04:34:52 S1: 12/26/2018, 04:34:52 S2: 26/12/2018, 04:34:52

Códigos de formato comunes: %Y año, %m mes, %d día, %H hora, %M minuto, %S segundo.


strptime() de Python – cadena a datetime

from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)

Salida:

date_string = 21 June, 2018 date_object = 2018-06-21 00:00:00

Aquí %d es día, %B nombre completo del mes y %Y año.


Conciencia de Zona Horaria

Para aplicaciones que deben mostrar o calcular horas en diferentes zonas, evita cálculos manuales y usa la librería pytz.

from datetime import datetime
import pytz
local = datetime.now()
print("Local:", local.strftime("%m/%d/%Y, %H:%M:%S"))
tz_NY = pytz.timezone('America/New_York')
dt_NY = datetime.now(tz_NY)
print("NY:", dt_NY.strftime("%m/%d/%Y, %H:%M:%S"))
tz_London = pytz.timezone('Europe/London')
dt_London = datetime.now(tz_London)
print("London:", dt_London.strftime("%m/%d/%Y, %H:%M:%S"))

Salida de muestra:

Local: 12/20/2018, 13:10:44 NY: 12/20/2018, 08:10:44 London: 12/20/2018, 13:10:44

Los objetos datetime_NY y datetime_London contienen timestamps conscientes de zona horaria.

python

  1. Dominando tipos de datos en Python: Guía práctica
  2. Dominando operadores en Python: Guía completa
  3. Dominando la sentencia pass en Python: Guía práctica
  4. Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
  5. Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
  6. Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
  7. Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
  8. Obtener la Fecha y Hora Actual en Python: Guía Práctica
  9. Python: Obtener Hora Actual y Datos de Zona Horaria Fácilmente
  10. Dominar time.sleep() en Python: Mejores Prácticas, Multihilo y Ejemplos Reales
  11. Visión general de Python: Lenguaje de alto nivel, legible, interactivo y orientado a objetos