2011-11-30 71 views
0

python完全是新的,我实际上在研究一个前同事的脚本。看着它看起来相当直截了当。情况如下:Python - 试图获得不同的时区

该脚本查看当前本地时间(UTC)并呈现基于时间的表格,该表格随着时间的推移在一天中滚动/更改,因此始终存在滚动的8小时表格。

问题是,现在我们想在CST('America/Chicago')部署这个工具的副本(在同一台服务器上)(这意味着我需要将UTC时间更改为CST)米试图找到一种方法来修改他必须做'current_time'变量== GMT -6。

他用的strftime()来获得的第一个小时:

current_time = int(strftime("%H")) 
if current_time <19: 
temp_page.write(...) 
elif current_time == 19: 
temp_page.write(...) 

所以 - 从我的PHP知识,我很想能够做到像:

current_time = int(strftime("%H"), (localtime() -6 hours)) 

(是的,我知道这是不是真正的PHP代码,但我希望你明白我的意思;-))

在我的[R esearch,我遇到过pytz,但这并没有安装在网络服务器上,尽管如果这是实现它的最好/最简单的方法,我可能会得到它。

任何帮助是极大的赞赏。

回答

0

您可能可以使用datetime模块(它是标准库的一部分,因此如果系统上安装了标准python,则会安装它)。

特别是,datetime对象可以有一个可选的tzinfo属性,用于在时区转换过程中使用。 Here是一篇博客文章,逐步解释如何使用这些文章。

+0

感谢Mac,这就是我一直在寻找的!我可能会开始使用pytz,因为它看起来有些好东西,但我的代码现在是: 'code' current_time = datetime.now() - timedelta(hours = 6) current_time = int(current_time.strftime(“ H“)) – Tev

+0

@Tev - 'current_hour = current_time.hour'也可以。 – eumiro

+0

谢谢@eumiro - 这更简单! – Tev

3

是的,尝试安装pytz,在使用不同的时区(和UTC)时它会帮助你很多。

import pytz 
from datetime import datetime 

now = datetime.now(pytz.utc) 

now现在datetime.datetime(2011, 11, 30, 14, 26, 30, 628014, tzinfo=<UTC>),你可以用它来计算当前UTC小时,now.hour(返回14):

当前UTC时间(独立于计算机的时区),可与获得

+0

我将添加pytz并开始使用它,但为了快速修复,我使用了datetime示例。非常感谢! – Tev