En este momento estás viendo Fechas en Odoo

Fechas en Odoo

Función para convertir la fecha y hora en datetime:

# Retorna tipo datetime (UTC)
fields.Datetime.from_string(picking_id.date_done)
# <class 'datetime.datetime'>
2019-06-06 23:08:14
# Ejemplo
self.mi_fecha = fields.Datetime.from_string(picking_id.date_done)

Función para convertir la fecha en cadena a date:

# Retorna tipo date
fields.Date.from_string(picking_id.date)
# <class 'datetime.date'>
2019-06-06
# Ejemplo
self.mi_fecha = fields.Date.from_string(picking_id.date

Obtiene la fecha y hora según la configuración de la zona horaria del usuario:

# Retorna tipo datetime (UTC-5)
fields.Datetime.context_timestamp(self, fields.Datetime.from_string(i.date_done))
# <class 'datetime.datetime'>
2019-06-06 18:08:14-05:00
# Ejemplo
self.fecha_usuario = fields.Datetime.context_timestamp(self, fields.Datetime.from_string(i.date_done))

Obtiene la fecha y hora actuales:

# Retorna tipo cadena
fields.Datetime.now()
# <class 'str'>
"2019-06-07 05:18:22"
# Ejemplo
self.fecha_actual = Datetime.now()

Convierte la fecha y hora en cadena:

# Retorna cadena
fields.Datetime.to_string(2019-06-06 18:08:14-05:00)
# <class 'str'>
# "2019-06-06 18:08:14"

Calcula los días de diferencia entre dos fechas:

diferencia = fields.Date.from_string(item.expired_date) - fields.Date.from_string(fields.Date.context_today(self))
diferencia.days
# 5
# Ejemplo
self.diferencia = (self.fecha_llegada - self.fecha_salida).days
# 5

Sumar días, semanas, meses a una fecha determinada:

from dateutil.relativedelta import relativedelta
# Suma 5 días
expired_date = fields.Datetime.from_string(item.delivery) + relativedelta(days=5)
# Suma 2 semanas
expired_date = fields.Datetime.from_string(item.delivery) + relativedelta(days=7 * 2)
# Suma 3 meses
expired_date = fields.Datetime.from_string(item.delivery) + relativedelta(months=3)

Calcula las horas y minutos de diferencia entre dos fechas:

obtengo_dias = (self.fecha_salida - self.fecha_llegada).days
obtengo_segundos = (self.fecha_salida - self.fecha_llegada).seconds
duracion = float(obtengo_dias) * 24 + (float(obtengo_segundos) / 3600)
# Obtengo el valor en tipo float
# 5.0
self.horas_segundos = duracion

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.