Перевести дату в нужный формат в excel

Рейтинг: 0Ответов: 2Опубликовано: 02.03.2023

Имеется дата в виде строки

q = '1 october 2022'

Нужно получить следующий формат даты

10.2022

Необходимо конвертировать ее в дату в нужном формате так, чтобы тип данных так же оставался <class 'datetime.datetime'>

Есть код

qq = date_time_obj = datetime.datetime.strptime(q, '%d %B %Y')
print(type(qq))
date = date_time_obj.date().strftime('%m.%Y')
print(date)
print(type(date))

И вывод программы

<class 'datetime.datetime'>
10.2022
<class 'str'>

Ответы

▲ 2Принят

Только наследование

class datetime(datetime.datetime):
    def __str__(self):
        return self.date().strftime('%m.%Y')

тип конечно не в модуле.

>>> q = '1 october 2022'
>>> date_time_obj = datetime.strptime(q, '%d %B %Y')
>>> print(date_time_obj)
10.2022
>>> type(date_time_obj)
<class '__main__.datetime'>
▲ 2

Для того, чтобы добавить дату в нужном формате в excel файл, можно воспользоваться библиотекой openpyxl

import openpyxl

class datetime(datetime.datetime):
    def __str__(self):
        return self.date().strftime('%m.%Y')

q = '1 october 2022'
date_time_obj = datetime.strptime(q, '%d %B %Y')

wb = openpyxl.load_workbook(name_file)
ws = wb.active
rows = ws.max_row

cell = ws.cell(row = rows+1, column = 1)
cell.number_format = 'M.YYYY'
cell.value = date_time_obj
cell.alignment = Alignment(horizontal="right")

wb.save(name_file)