我正在尝试将日期时间从UTC转换为另一个时区。但是转换后,时间部分没有改变。而是将偏移时间与时区相加。
有什么办法可以显示该时区的实际时间?
示例代码:
>>> import datetime
>>> import pytz
>>> today=datetime.datetime.now()
>>> today
datetime.datetime(2019, 4, 18, 0, 50, 33, 294610)
>>> today.isoformat()
'2019-04-18T00:50:33.294610'
>>> today2=today.astimezone(pytz.timezone('Asia/Singapore'))
>>> today2
datetime.datetime(2019, 4, 18, 0, 50, 33, 294610, tzinfo=<DstTzInfo 'Asia/Singapore' +08+8:00:00 STD>)
>>> today2.isoformat()
'2019-04-18T00:50:33.294610+08:00'
>>> today2.strftime("%Y-%m-%d %H:%M:%S")
'2019-04-18 00:50:33'
>>>
我希望打印today2
变量:2019-04-18T08:50:33.294610
我尝试使用strftime("%Y-%m-%d %H:%M:%S")
格式化日期,但仍显示2019-04-18 00:50:33
。
请帮助。谢谢。
答案 0 :(得分:0)
这应该可以解决问题,请注意,我将tzinfo=None
设置为删除+08:00
In [102]: today2.replace(tzinfo=None).isoformat()
Out[102]: '2019-04-18T01:10:32.226014'
In [103]: today2.isoformat()
Out[103]: '2019-04-18T01:10:32.226014+08:00'