Python可以用中文展示时间吗?

1 个回答

Coco老师 - 科普专家
擅长:编程教育

能显示中文时间,方法有2种。

方法一:

>>> import locale
>>> locale.setlocale(locale.LC_CTYPE, 'chinese')
>>> print(nt.strftime('%Y年%m月%d日'))
2015年08月10日

原理是:“在Windows里,time.strftime使用C运行时的多字节字符串函数strftime,这个函数必须先根据当前locale配置来编码格式化字符串(使用PyUnicode_EncodeLocale)。”

如果不设置好locale的话,根据默认的"C" locale,底层的wcstombs函数会使用latin-1编码(单字节编码)来编码格式化字符串,然后导致提供的多字节编码的字符串在编码时出错。

方法二:

print(nt.strftime('%Y{y}%m{m}%d{d}').format(y='年', m='月', d='日'))

原理是:格式化完毕后再将占位符换回中文字符。