<p>应用<code>locale.setlocale(locale.LC_ALL, 'kor')</code>而不是<code>locale.setlocale(locale.LC_TIME, 'kor')</code>,如下所示:</p>
<pre><code>d:\bat> python -q
>>>
>>> import locale
>>> from datetime import datetime
>>>
>>> ### generate a date string with datetime.strftime
...
>>> locale.setlocale(locale.LC_ALL, 'kor') ### crucial point ###
'Korean_Korea.949'
>>> locale.getlocale(locale.LC_TIME)
('Korean_Korea', '949')
>>> print(datetime.now().strftime('%A')) # Prints 월요일 (right!)
월요일
>>>
>>> ### parsing korean date string
...
>>> date_string = '월요일, 2019년 08월 05일 09:33:39'
>>> fromat = '%A, %Y년 %m월 %d일 %H:%M:%S'
>>>
>>> time = datetime.strptime(date_string, fromat)
>>> print(time)
2019-08-05 09:33:39
>>>
</code></pre>
<p>仅供参考,下面是一些其他测试用例(<em>Python 3.5.1 64位(AMD64)on win32</em>):</p>
<pre><code>import locale
from datetime import datetime
locale.getdefaultlocale() # Echoes ('cs_CZ', 'cp65001')
locale.getlocale(locale.LC_TIME) # Echoes (None, None)
print(datetime.now().strftime('%A')) # Prints Monday (wrong?)
# user’s default setting for LC_TIME category
locale.setlocale(locale.LC_TIME, '') # Echoes 'Czech_Czechia.utf8'
locale.getlocale(locale.LC_TIME) # Echoes ('Czech_Czechia', 'utf8')
print(datetime.now().strftime('%A')) # Prints pondÄÃ (wrong!)
# user’s default setting for all categories
locale.setlocale(locale.LC_ALL, '') # Echoes 'Czech_Czechia.utf8'
locale.getlocale(locale.LC_TIME) # Echoes ('Czech_Czechia', 'utf8')
print(datetime.now().strftime('%A')) # Prints pondělí (right!)
################################################
locale.setlocale(locale.LC_TIME, 'kor')
locale.getlocale(locale.LC_TIME)
print(datetime.now().strftime('%A')) # Prints ¿ù¿äÀÏ (wrong!)
################################################
</code></pre>