Home > Blockchain >  Using timezone with openpyxl
Using timezone with openpyxl

Time:08-04

I need to add a date in an excel file. I use timezones on these dates. It works very well with django rest framework. (My GET requests return the date with this format: 2022-07-23T13:19:59 02:00) Same in Django admin, the Europe/Paris timezone is well taken into account ( 02:00).

However, when I use openpyxl, the indicated time is 2h late (it takes the UTC timezone).

sheet.append([date_recorded.strftime("%d/%m/%Y %H:%M:%S")])

Same thing if I print this date in console. (2022-07-11 15:19:50 00:00)

How to correct this?

CodePudding user response:

You can simply convert it to your desired zone like this

from dateutil import tz
utctime = "YOUR CURRENT VALUE OF DATETIME"
from_zone = tz.gettz("UTC")
to_zone = tz.gettz("yourzone")
utctime = utctime.replace(tzinfo=from_zone)
new_time = utctime.astimezone(to_zone)

CodePudding user response:

Since you are using django, you can use built-in get_current_timezone to convert datetime objects to the local timezone:

from django.utils import get_current_timezone

timezone = get_current_timezone()
date_recorded = date_recorded.astimezone(timezone)
sheet.append([date_recorded.strftime("%d/%m/%Y %H:%M:%S")])
  • Related