Python - 特定时区的日期时间

时间:2010-11-01 18:35:40

标签: python datetime timezone

我正在努力争取在EDT时区获得当前时间。

print datetime.time(datetime.now()).strftime("%H%M%S")

datetime.now([tz])有一个可选的tz参数,但它必须是datetime.tzinfo类型...我无法弄清楚如何为东部时区定义一个tzinfo对象...看起来它应该非常简单,但我无法在不导入额外库的情况下解决这个问题。

2 个答案:

答案 0 :(得分:20)

我对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 

答案 1 :(得分:8)

tzinfo类只定义一个接口,您需要自己实现它(请参阅文档中的示例)或使用实现它的第三方模块,如pytz

修改:抱歉,我错过了您不想导入其他图书馆。