TypeError astimezone()参数1必须是datetime.tzinfo

时间:2017-11-13 01:44:59

标签: python cron reddit

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

有没有解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

字符串"America/San_Francisco"不是有效的时区,因此,当您尝试获取它时(使用tz.gettz("America/San_Francisco")),它的计算结果为None。反过来,这会导致TypeError,因为方法astimezone期望参数类型为datetime.tzinfo(但会改为NoneType)。

您可以在wikipedia获取完整的时区列表。