我试图创建一个名为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
答案 0 :(得分:0)
我不确定我是否理解正确,但您可以将tz
中的任何内容传递给pytz.timezone
:
def to_timezone(tz):
tz_utc = pytz.timezone(tz)
所以你可以打电话给to_timezone('Europe/London')
。
答案 1 :(得分:0)
如果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