我正在尝试使用以下代码将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
我该如何解决?
答案 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)。