This question has been flagged

Hey i am trying to parse data from portal into erp. I used Datetime-local in my html form and when i confirm the record from here it goes to database accurately. Its obvious because my psql shows timezone 'Asia/Karachi'. Its all good till that point but when i come inside erp and check that record it has additional 5+ hours. Y is it so? when my poostgres and odoo both share the same timezone then y i am getting these additional 5 hours?

Kindly help

Avatar
Discard
Best Answer

Try the following code to convert the datetime before passing it to the database:

import pytz

check_time = fields.Datetime.to_datetime(check_time)
local_tz = self.env.user.tz // Timezone of the user
local_dt = pytz.timezone(local_tz)
local_dt = local_dt.localize(check_time, is_dst=None)
check_time = local_dt.astimezone(pytz.utc)

Pass check_time to the database and check the date in Odoo.

Avatar
Discard
Author

Thank you so much, its working now.