Saltar al contenido

Convierta la fecha de excel en formato de número a formato de fecha python

Te doy la bienvenida a nuestro espacio, aquí vas a hallar la resolución de lo que buscas.

Solución:

from datetime import datetime
excel_date = 42139
dt = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + excel_date - 2)
tt = dt.timetuple()
print dt
print tt

Como mencionó JF Sebastian, esta respuesta solo funciona para cualquier fecha posterior al 01/03/1900

EDITAR: (en respuesta a @RK)

Si tu excel_date es un número flotante, usa este código:

def floatHourToTime(fh):
    h, r = divmod(fh, 1)
    m, r = divmod(r*60, 1)
    return (
        int(h),
        int(m),
        int(r*60),
    )

excel_date = 42139.23213
dt = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + int(excel_date) - 2)
hour, minute, second = floatHourToTime(excel_date % 1)
dt = dt.replace(hour=hour, minute=minute, second=second)

El módulo xlrd proporciona una función xldate_as_tuple para convertir el formato de fecha numérica de Excel a una tupla (year, month, day, hour, minute, nearest_second).

A continuación, puede utilizar datetime.datetime para convertir la tupla en una datetime-objeto.

from datetime import datetime
import xlrd

excel_date = 44032
python_date = datetime(*xlrd.xldate_as_tuple(excel_date, 0))

Recuerda algo, que tienes la capacidad de esclarecer tu experiencia si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *