Python pytz:显示时区的实际时间

时间:2019-04-17 17:00:05

标签: python timezone pytz

我正在尝试将日期时间从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

请帮助。谢谢。

1 个答案:

答案 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'