Cómo convertir un Python datetime.datetime a un número de fecha de serie de Excel

Este artículo discutirá la conversión de un python datetime.datetime a un número de fecha de serie de Excel. El formato de «fecha de serie» de Excel es en realidad el número de días desde 1900-01-00. La función strftime() se usa para convertir objetos de fecha y hora a su representación de string. Toma una o más entradas de código formateado y devuelve la representación de string.

Sintaxis:

strftime(formato)

Parámetros: Esta función acepta un parámetro que se ilustra a continuación:

  • formato: este es el código de formato especificado en el que se representará el objeto de fecha y hora dado.

Valores devueltos: Devuelve la representación de string del objeto de fecha u hora.

Ejemplo 1: En el siguiente ejemplo, la fecha y la hora actuales se convierten en el número de fecha de serie de Excel. Y el resultado devuelto tendrá el formato ’23/08/21 15:15:53′, que Excel acepta como una fecha/hora válida y permite ordenar en Excel.

Python3

# Python3 code to illustrate the conversion of
# datetime.datetime to excel serial date number
 
# Importing datetime module
import datetime
 
# Calling the now() function to return
# current date and time
current_datetime = datetime.datetime.now()
 
# Calling the strftime() function to convert
# the above current datetime into excel serial date number
print(current_datetime.strftime('%x %X'))

Producción:

08/23/21 15:15:53

Si necesitamos el número de fecha de serie de Excel en forma de valor de fecha, esto se puede hacer usando la función toordinal() .

Ejemplo 2: número de serie en forma de valor de fecha

Python3

# Python3 code to illustrate the conversion of
# datetime.datetime to excel serial date number
 
# Importing date module from datetime
from datetime import date
 
# Taking the parameter from the calling function
def convert_date_to_excel_ordinal(day, month, year):
 
    # Specifying offset value i.e.,
    # the date value for the date of 1900-01-00
    offset = 693594
    current = date(year, month, day)
 
    # Calling the toordinal() function to get
    # the excel serial date number in the form
    # of date values
    n = current.toordinal()
    return (n - offset)
 
# Calculating the excel serial date number
# for the date "02-02-2021" by calling the
# user defined function convert_date_to_excel_ordinal()
print(convert_date_to_excel_ordinal(2, 2, 2021))

Producción:

44229

Ejemplo: En el siguiente ejemplo, la fecha «2021-05-04» se convierte en el número de fecha de serie de Excel con referencia a la fecha 1899-12-30.

Python3

# Python3 code to illustrate the conversion of
# datetime.datetime to excel serial date number
 
# Importing datetime module
from datetime import datetime
import datetime as dt
 
 
def excel_date(date1):
 
    # Initializing a reference date
    # Note that here date is not 31st Dec but 30th!
    temp = dt.datetime(1899, 12, 30)
    delta = date1 - temp
    return float(delta.days) + (float(delta.seconds) / 86400)
 
 
# Calculating the excel serial date number
# for the date "2021-05-04" by calling the
# user defined function excel_date()
print(excel_date(datetime(2021, 2, 4)))

Producción:

44231.0

Publicación traducida automáticamente

Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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