Python 在linux计算机中获取astimezone错误

Python 在linux计算机中获取astimezone错误,python,linux,pytz,Python,Linux,Pytz,我使用的是linux aws机器,执行datetime.datetime.now时存在时区差异。所以我尝试了这种方法来克服时区错误 format = "%Y-%m-%d %H:%M:%S %Z%z" current_date = datetime.datetime.now() now_asia = current_date.astimezone(timezone('Asia/Kolkata')) print(now_asia.strftime(format)) 当我做窗户机器时,我没有得到任何

我使用的是linux aws机器,执行datetime.datetime.now时存在时区差异。所以我尝试了这种方法来克服时区错误

format = "%Y-%m-%d %H:%M:%S %Z%z"
current_date = datetime.datetime.now()
now_asia = current_date.astimezone(timezone('Asia/Kolkata'))
print(now_asia.strftime(format))
当我做窗户机器时,我没有得到任何错误。当我在我的linux机器中使用时,我得到了“ValueError:astimezone()不能应用于原始日期时间”这句话

为了调试这个,我尝试了这个链接中提到的方法

当我尝试第一个答案时,我没有得到任何错误,但时区没有转换。 当我尝试第二个答案时,我得到一个错误'AttributeError:'module'对象没有属性'utcnow'

我试过这个

>>>loc_date = local_tz.localize(current_date)
>>> loc_date
datetime.datetime(2020, 4, 6, 7, 23, 36, 702645, tzinfo=<DstTzInfo 'Asia/Kolkata' IST+5:30:00 STD>)
>>> loc_date.strftime(format)
'2020-04-06 07:23:36 IST+05:30'
>>loc\u date=local\u tz.localize(当前日期)
>>>loc_日期
datetime.datetime(2020,4,6,7,23,36,702645,tzinfo=)
>>>loc_日期、标准时间(格式)
“2020-04-06 07:23:36 IST+05:30”

我得到了这个,所以根据印度时间,如果我们加上5:30,它将是正确的。我应该怎么做。

请检查您是否确实在云中运行Python 3.7解释器。引用:

在3.6版中进行了更改:现在可以在假定表示系统本地时间的原始实例上调用astimezone()方法

事实上,我刚刚使用Python 3.5.9和
pytz
2019.3测试了脚本,我得到了

  File "timez.py", line 6, in <module>
    now_asia = current_date.astimezone(timezone('Asia/Kolkata'))
ValueError: astimezone() cannot be applied to a naive datetime
但请注意,now建议您使用
datetime中的
tz
参数。now

导入日期时间
进口皮茨
现在utc=datetime.datetime.now(tz=pytz.utc)
本地时间=pytz.时区(“亚洲/加尔各答”)
now_asia=now_utc.astimezone(本地)
format=“%Y-%m-%d%H:%m:%S%Z%Z”
打印(现在为_asia.strftime(格式))

在我的例子中,哪个打印
2020-04-22 09:25:21 IST+0530

您使用的是哪个Python版本?我使用的是Python 3.7