使用 PYTZ 的时区创建函数



我正在尝试制作一个名为to_timezone的函数将时区名称作为字符串,然后转换"starter"到那个时区,使用Pytz的时区...我希望它返回一个新的日期时间。

我希望它是作为"tz"输入的任何时区。我不想对"pytz 时区对象"进行硬编码我将如何实现这一点?
这是我的代码:

import datetime
import pytz
starter = pytz.utc.localize(datetime.datetime(2015, 10, 21, 23, 29))
def to_timezone(tz):
    tz_utc = pytz.timezone('#pytz timezone object')
    starter = tz_utc.astimezone
    return starter

如果tz是tz数据库中的时区名称,例如"America/New_York"那么您可以将其直接传递给pytz.timezone并使用astimezone()normalize()方法将感知的日期时间对象starter转换为tz时区:

def to_timezone(aware_dt, zonename):
    tz = pytz.timezone(zonename)
    return tz.normalize(aware_dt.astimezone(tz))

例:

starter = datetime.datetime(2015, 10, 21, 23, 29, tzinfo=pytz.utc)
print(to_timezone(starter, "America/Los_Angeles"))
# -> 2015-10-21 16:29:00-07:00

我不确定我是否正确理解你,但你可以将任何传入的内容作为tz传递给pytz.timezone

def to_timezone(tz):
    tz_utc = pytz.timezone(tz)

因此,您可以例如调用to_timezone('Europe/London')

相关内容

  • 没有找到相关文章