파이썬 날짜 표현 한글 에러

Jay
2 min readMar 6, 2019

--

파이썬에서 오늘 날짜를 가져오는법

from datetime import datetime as dt
today = dt.now().date()
print(today)
#실행결과
2019-03-06

형식을 지정해주는 법

  • 기호를 넣어보자.
print(today.strftime('%Y. %m. %d.'))#실행결과
2019. 03. 06.
  • 영어를 넣어보자.
print(today.strftime('year: %Y month: %m day : %d'))#실행결과
year: 2019 month: 03 day : 06
  • 한글을 넣어보자.
$ print(today.strftime('%Y년 %m월 %d일'))#실행결과
Traceback (most recent call last):
File "c:\Users\jeakwon\Desktop\workspace_docx\docx\take_in_request_form.py", line 7, in <module>
print(datetime.datetime.now().date().strftime('%Y년 %m월 %d일'))
UnicodeEncodeError: 'locale' codec can't encode character '\ub144' in position 2: encoding error

실패한다

해결방법

  1. strftime 인풋 string을 유니코드 인코딩 후 디코딩
  2. strftime 아웃풋 string 을 인코딩 후 유니코드 디코딩
  • ‘%Y년 %m월 %d일’.encode(‘unicode-escape’).decode()
  • strftime( ~ ).encode().decode(‘unicode-escape’))
print(
today.strftime(
'%Y년 %m월 %d일'.encode('unicode-escape').decode()
).encode().decode('unicode-escape')
)
#실행결과
2019년 03월 06일

참고문헌

https://github.com/sphinx-doc/sphinx/issues/2102

--

--

Jay
Jay

Written by Jay

Brain Neural Network : Where neuroscience meets machine learning

No responses yet