让Python3显示正确的tznam

2024-09-28 22:32:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想看看时区的名字。下面是Python2中的代码:

Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import time
>>> time.tzname
('\xd6\xd0\xb9\xfa\xb1\xea\xd7\xbc\xca\xb1\xbc\xe4', '\xd6\xd0\xb9\xfa\xcf\xc4\xc1\xee\xca\xb1')
>>> a = time.tzname[0]
>>> print(a)
中国标准时间   # correct output

到目前为止还不错。我的电脑是Windows7,默认编码为gbk。你知道吗

然后我尝试了Python3:

>>> time.tzname
('Öйú±ê׼ʱ¼ä', 'ÖйúÏÄÁîʱ')
>>> a = time.tzname[0]
>>> print(a)
Öйú±ê׼ʱ¼ä

那么当使用Python3的时候到底发生了什么?如何获得正确的输出?你知道吗


Tags: 代码defaulttime名字python3printpython2xb1
1条回答
网友
1楼 · 发布于 2024-09-28 22:32:24

一开始我并不想回答这个问题,但写完整个问题后,我找到了答案,就把它写了下来。你知道吗

原因是它没有使用正确的编码,应该使用gbk,但是Python选择了latin-1。这证明了:

>>> print(a.encode('latin-1').decode('gbk'))
中国标准时间

相关问题 更多 >