Python - 特定时区的日期时间

wun*_*tee 11 python timezone datetime

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

print datetime.time(datetime.now()).strftime("%H%M%S")
Run Code Online (Sandbox Code Playgroud)

datetime.now([tz])有一个可选的tz参数,但它必须是datetime.tzinfo类型的...我还没有弄清楚如何为东部时区定义一个tzinfo对象...好像它应该很简单,但我不能在不导入额外的库的情况下解决它.

pyf*_*unc 20

我对EDT时区并不十分反对,但这个例子应该符合你的目的.

import datetime
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

现在您可以使用它来获取时区正确性的信息:

print datetime.datetime.now(EST()) 
Run Code Online (Sandbox Code Playgroud)

输出:

2010-11-01 13:44:20.231259-05:00 
Run Code Online (Sandbox Code Playgroud)


adw*_*adw 8

tzinfo类只定义了一个接口,则需要自己实现(参见例子文档),或使用它实现它的第三方模块,如pytz.

编辑:对不起,我错过了你不想导入另一个库.