为什么日期时间显示不像在数据库中?
why datetime showed not like in the DB?
我在数据库中有以下几行
id | date_order | name | origin
----+---------------------+----------+---------
38 | 2016-05-10 14:00:00 | OT/00024 | GI/00005:
39 | 2016-05-26 14:00:00 | OT/00025 | GI/00005:
40 | 2016-06-11 14:00:00 | OT/00026 | GI/00005:
41 | 2016-06-27 14:00:00 | OT/00027 | GI/00005:
42 | 2016-07-13 14:00:00 | OT/00028 | GI/00005:
但它在视图中显示为:
date_order | name | origin
--------------------+----------+-------------
10/05/2016 15:00:00 | OT/00024 | GI/00005:
26/05/2016 15:00:00 | OT/00025 | GI/00005:
11/06/2016 14:00:00 | OT/00026 | GI/00005:
27/06/2016 14:00:00 | OT/00027 | GI/00005:
13/07/2016 15:00:00 | OT/00028 | GI/00005:
我更改了 时区,但我仍然明白差异 !
当您存储 datetime
时,您应该使用这样的上下文:
from openerp.osv import fields
from datetime import datetime
...
my_date = fields.datetime.context_timestamp(cr, uid, datetime.now(), context=context)
数据库中存储的日期是 UTC (GMT-0) 时区。假设此人设置了时区 GMT - 5:00,那么在将值存储到数据库时,日期将添加 5 小时(正好是 5,不多也不少),因此我们得到 UTC存入数据库的时间。现在,当显示相同时,它将检查用户时区,并发现其 GMT - 5:00,因此数据库时间将减去 5(同样恰好 5,不多也不少)并显示用户。
这对于在不同时区使用的系统来说非常有用。所以理解是输入是在用户的时区中存储的 UTC(GMT-0) 并显示到用户的时区(即使用户查看在不同的时区,时间将准确到他们的时区)
Odoo 将日期时间字段显示为时区,在这种情况下,时区是 GMT+1,但由于斋月,6 月将是 GMT+0,这就是为什么
我在数据库中有以下几行
id | date_order | name | origin
----+---------------------+----------+---------
38 | 2016-05-10 14:00:00 | OT/00024 | GI/00005:
39 | 2016-05-26 14:00:00 | OT/00025 | GI/00005:
40 | 2016-06-11 14:00:00 | OT/00026 | GI/00005:
41 | 2016-06-27 14:00:00 | OT/00027 | GI/00005:
42 | 2016-07-13 14:00:00 | OT/00028 | GI/00005:
但它在视图中显示为:
date_order | name | origin
--------------------+----------+-------------
10/05/2016 15:00:00 | OT/00024 | GI/00005:
26/05/2016 15:00:00 | OT/00025 | GI/00005:
11/06/2016 14:00:00 | OT/00026 | GI/00005:
27/06/2016 14:00:00 | OT/00027 | GI/00005:
13/07/2016 15:00:00 | OT/00028 | GI/00005:
我更改了 时区,但我仍然明白差异 !
当您存储 datetime
时,您应该使用这样的上下文:
from openerp.osv import fields
from datetime import datetime
...
my_date = fields.datetime.context_timestamp(cr, uid, datetime.now(), context=context)
数据库中存储的日期是 UTC (GMT-0) 时区。假设此人设置了时区 GMT - 5:00,那么在将值存储到数据库时,日期将添加 5 小时(正好是 5,不多也不少),因此我们得到 UTC存入数据库的时间。现在,当显示相同时,它将检查用户时区,并发现其 GMT - 5:00,因此数据库时间将减去 5(同样恰好 5,不多也不少)并显示用户。
这对于在不同时区使用的系统来说非常有用。所以理解是输入是在用户的时区中存储的 UTC(GMT-0) 并显示到用户的时区(即使用户查看在不同的时区,时间将准确到他们的时区)
Odoo 将日期时间字段显示为时区,在这种情况下,时区是 GMT+1,但由于斋月,6 月将是 GMT+0,这就是为什么