tz.gettz()在Windows 10中返回None

时间:2019-07-16 11:52:32

标签: python python-3.x windows python-3.7

我正在尝试使用以下代码将UTC时间转换为本地时区。在ubuntu 18.04上工作正常。但是在Windows 10中出现错误。因为tz.gettz()返回None

在命令提示符下出现以下错误:

  

astimezone()参数1必须是datetime.tzinfo,而不是None。

代码如下:

from dateutil import tz
def convert_to_localtz(self,date):
    tz1 = self._context.get('tz')// Value is 'Asia/Calcutta'
    to_zone = tz.gettz(tz1)
    print'to_zone',to_zone // Prints None
    from_zone = tz.tzutc()
    utc = date.replace(tzinfo=from_zone)
    date = utc.astimezone(to_zone)
    return date

已安装的python版本是3.7

我该如何解决?

1 个答案:

答案 0 :(得分:0)

来自docs

  

在Windows上,标准已扩展为包括特定于Windows的   操作系统提供的区域名称:

>>> gettz('Egypt Standard Time')
tzwin('Egypt Standard Time')

  

name –时区名称(IANA,或者在Windows中为Windows键),...


因此,我认为您的tz1应该是India Standard Time(至少基于https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values)。