Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
4207 Vistas

If  01.01.2016 23:59 is stored in the fields.Datetime() while a record is created (do not check 'write' method) the result in the DB is '01.01.2016 23:59'. But in the view I see '02.02.2016 01:59'. Two hours is added because of TZ as I think.

Does Odoo or Postgres modify the date? And how to get exactly the value I have sored?

Avatar
Descartar
Mejor respuesta

Hi Artem,

Every date that you store in Odoo is shown to the user in his timezone (as set under the user his preferences).
In the back-end however all dates are converted to UTC and will be stored in the database in UTC. This means that every time that you see in the front-end is adjusted to the logged in his timezone while it is written away in UTC.
The reason this is done is to be consistent through-out Odoo and to have a rule that you can always fall back on to calculate dates and timezones.
You can simply get the stored value by printing it out for example:

my_date = self.your_date_field

Regards,
Yenthe

Avatar
Descartar
Autor

I think it is useful to add an attribute like 'notzconversion'

You could get the current user his timezone and compensate it to write it away, I guess. I don't see a reason in doing so but it can be done.

Depending on the Odoo version, the timezone under the user preferences is ignored and Odoo will use system time instead. The user timezone is essentially useless then. See https://www.odoo.com/forum/help-1/question/what-is-the-purpose-of-the-user-timezone-if-all-dates-displayed-in-odoo-are-based-on-system-time-106845

Publicaciones relacionadas Respuestas Vistas Actividad
3
jun 25
670
1
jul 23
3370
4
dic 22
9318
2
abr 21
3425
1
oct 18
4760