你好朋友我在python中编写了两个方法,根据传递给它们的日期返回日期,但是我得到的输出在某些情况下是不同的。 粘贴下面的代码,请查看它并建议我更正....
e.g。日期" 10/06 / 2014" (m / d / yy)一个函数返回输出为星期一,这是正确的,另一个函数返回星期日,而不是。 我在一个案例中使用Odoo8(Openerp)服务器的方法,在另一个案例中使用Python的方法。
def a():
month, day, year = (int(x) for x in "10/06/2014".split('/'))
ans = datetime.date(year, month, day)
day_name = ans.strftime("%A") # the day_name is Monday here
def b():
dt = datetime.strptime("10/06/2014", "%m/%d/%y")
dt = fields.Datetime.context_timestamp(self, dt) # openerp's ORM method
t = dt.strftime("%A") # the day_name is Sunday here
答案 0 :(得分:2)
我想那是因为你在格林威治以西,datetime.date
是时区不知道的,openerp.fields.Datetime.context_timestamp
是时区感知的。
例如,如果您的时区为PST,则时间戳10/06/2014 0:00 UTC
变为10/05/2014 16:00 PST
,显然是星期天。