Перевести дату в нужный формат в excel
Имеется дата в виде строки
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 шт):
Автор решения: eri
→ Ссылка
Только наследование
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'>
Автор решения: Елена Сергеева
→ Ссылка
Для того, чтобы добавить дату в нужном формате в 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)