Python - 特定时区的日期时间
问题描述:
我正在尝试获取EDT时区中的当前时间。Python - 特定时区的日期时间
print datetime.time(datetime.now()).strftime("%H%M%S")
datetime.now([TZ])有一个可选的TZ说法,但它必须是类型datetime.tzinfo的......我还没有本能够找出如何定义一个tzinfo对象为东时区...似乎它应该很简单,但我不能导出一个额外的图书馆。
答
我对EDT时区并不十分反感,但这个例子应该可以满足您的目的。
import datetime
datetime.datetime.now必须通过应该是datetime.tzinfo类型的时区信息。这是一个实现了一些所需功能的类。因为这是一个例子,所以我在这里没有提供节电细节。
class EST(datetime.tzinfo):
def utcoffset(self, dt):
return datetime.timedelta(hours=-5)
def dst(self, dt):
return datetime.timedelta(0)
现在你可以使用它来获取带有时区的正确性信息:
print datetime.datetime.now(EST())
输出:
2010-11-01 13:44:20.231259-05:00
感谢 - 令人沮丧的是你必须创建一个整体类来指定一个时区(vs只是传递一个简单的变量) – wuntee 2010-11-01 18:58:32
@wuntee:那不是真的。这是为了解释。 adw的答案包含可用于传递tzinfo信息的库 - pytz。事实上,这将是重用和dst等方面已由pytz模块提供。 – pyfunc 2010-11-01 19:05:33