2012-04-03 52 views
1

我正在python中使用datetime对象。我有一个功能,需要一段时间,发现时间和现在的不同。时区感知与时区天真python

def function(past_time): 
    now = datetime.now() 
    diff = now - past_time 

当我将它传递给这个函数初始化我为它天真的日期时间初始化之前past_time。现在也是一个日期时间天真的对象。然而,当我尝试调用这个函数时,我得到这个错误:不能减去偏移量天真和偏移量感知的日期时间。如果他们都是理论上日期时间天真的对象,这是怎么回事?

任何帮助,将不胜感激。谢谢!

+0

我想也许这个链接可以帮助吗? http://stackoverflow.com/questions/5259882/subtract-two-times-in-python“使用'combine'来构建一个日期时间,可以扣除。” – George 2012-04-03 18:35:45

回答

5

日期时间没有做任何跨时区计算,因为它是一个复杂的,涉及的主题。

我建议普遍转换日期UTC和执行这些数学。

我最近完成使用时区在大蟒蛇/ Django项目一期工程和调查后,去与内部转换一切UTC,只有在显示器转换到用户。

您应该查看pytz以完成UTC的转换,并将Olson代码存储在您的应用中需要的时区 - 可能与每个用户相关联,或适合您的程序。

+0

好伟大。这就说得通了。我是django的新成员,并且使用datetime对象......你能指点我更多关于做这些转换的信息吗?谢谢! – 2012-04-03 19:07:07

+0

为pytz添加了一个笔记,这是我使用的。 – nOw2 2012-04-03 21:47:10

+0

您是否可以使用这些信息做你想做的事?如果是这样,你可以点击接受答案?谢谢! – nOw2 2012-04-11 12:29:18