python datetime.strftime不支持日语?

时间:2018-06-07 13:21:23

标签: python windows python-3.x

我遇到以下代码导致编码错误的问题: 将包含字符串的日语传递给strftime时会发生此问题。

这是在cmd.exe上的python repl上引起的 这个问题是python的错误吗?

import datetime
d = datetime.datetime.now()
d.strftime("%y年")

错误讯息:

UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal byte sequence

Python 3.6.5
Windows10 1803

2 个答案:

答案 0 :(得分:1)

在脚本中添加编码后,它可以正常工作。

<强>实施例

# -*- coding: utf-8 -*-

import datetime
d = datetime.datetime.now()
print( d.strftime("%y 年") )

<强>输出:

18 年

答案 1 :(得分:1)

在Python 3.6+中,使用f-string:

import datetime
d = datetime.datetime.now()
y = d.strftime("%y")
assert f'{y}年' == '18年'