我是Python新手,我尝试设置Reddit僵尸程序并通过crontab实现自动化。当我通过Python运行它时工作正常,但在crontab中我得到了上述内容:" TypeError astimezone()参数1必须是datetime.tzinfo"。我不确定如何解决这个问题,并且无法在网上找到很多关于这个问题的信息。
这是我有astimezone的地方。
def timeStringToPacific(s):
from_zone = tz.gettz('America/New_York')
to_zone = tz.gettz('America/San_Francisco')
time = datetime.strptime(s[:-3], '%I:%M %p')
newyork = time.replace(tzinfo=from_zone)
pacific = newyork.astimezone(to_zone)
formatted = datetime.strftime(pacific, '%I:%M %p')
if formatted[0] == '0':
formatted = formatted[1:]
return formatted
有没有解决这个问题?谢谢!
答案 0 :(得分:1)
字符串"America/San_Francisco"
不是有效的时区,因此,当您尝试获取它时(使用tz.gettz("America/San_Francisco")
),它的计算结果为None
。反过来,这会导致TypeError
,因为方法astimezone
期望参数类型为datetime.tzinfo
(但会改为NoneType
)。
您可以在wikipedia获取完整的时区列表。