본문으로 바로가기
728x90

locale.setlocale()

시간을 한글 포맷으로 변환하다 보면 다음과 같은 에러를 볼 수 있습니다.

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

import datetime

now = datetime.datetime.now()
df = '%Y년 %#m월 %#d일 %A'
print(now.strftime(df))
더보기
UnicodeEncodeError: 'locale' codec can't encode character '\ub144' in position 2: Illegal byte sequence

 

다음과 같은 locale 설정 코드를 삽입합니다. 만약 다음과 같은 에러가 발생한다면, (Windows10)

locale.Error: unsupported locale setting

import datetime
import locale

locale.setlocale(locale.LC_TIME,'ko_KR.UTF-8')
now = datetime.datetime.now()
df = '%Y년 %#m월 %#d일 %A'
print(now.strftime(df))
더보기
locale.Error: unsupported locale setting

 

locale.setlocale(locale.LC_ALL, '') 를 사용합니다.

import locale
import datetime

print(locale.getlocale())
locale.setlocale(locale.LC_ALL, '')
print(locale.getlocale())

now = datetime.datetime.now()
df = '%Y년 %#m월 %#d일 %A'
print(now.strftime(df))
더보기
(None, None)
('Korean_Korea', 'utf8')
2020년 7월 6일 월요일
오후 7:35
14:57:00