일반적인 포멧인 경우
dateutil 을 사용하면 된다.
import dateutil.parser
from datetime import datetime
#
timeStr0 = [
'Tue, 07 Aug 2009 21:17:00 +0800',
'2009/08/07 22:12:21',
'07/08/2009 22:12:21',
'2009-8-7 22:12'
]
for t in timeStr0:
# 변환
d = dateutil.parser.parse(t)
print(type(d))
print(d)
dStr = d.strftime('%Y-%m-%d %H:%M:%S')
print(dStr)
한글 표현 날짜의 경우
import dateutil.parser
from datetime import datetime
timeStr1 = [
'2009년 8월 7일 22시 12분',
'2009년 8월 7일 22시 12분 21초'
]
for t in timeStr1:
# 변환
d = dateutil.parser.parse(t)
print(type(d))
print(d)
dStr = d.strftime('%Y-%m-%d %H:%M:%S')
print(dStr)
에러가 난다.
dateutil.parser._parser.ParserError: Unknown string format: 2009년 8월 7일 22시 12분
한글 표현 날짜를 포함해서 모두 되도록 했다
전처리 해서.
import dateutil.parser
from datetime import datetime
timeStr = [
'Tue, 07 Aug 2009 21:17:00 +0800',
'2009/08/07 22:12:21',
'07/08/2009 22:12:21',
'2009-8-7 22:12',
'2009년 8월 7일 22시 12분',
'2009년 8월 7일 22시 12분 21초'
]
for t in timeStr:
# 전처리
if t.find('일') == -1 and t.find('월') == -1 and t.find('년') == -1:
print(t)
else:
t = t.replace('년', '/').replace('월', '/').replace('일', '|').replace('시', ':').replace('분', ':').replace('초', '')
t = t.replace(' ', '')
t = t.replace('|', ' ')
if t[-1] == ':':
t = t[:-1]
# 변환
d = dateutil.parser.parse(t)
print(type(d))
print(d)
dStr = d.strftime('%Y-%m-%d %H:%M:%S')
print(dStr)
반응형
'Pythonian' 카테고리의 다른 글
한글 romanization (0) | 2022.10.03 |
---|---|
파이썬에서 일정 간격 이내 지점 삭제하기 (0) | 2022.01.20 |
그림 창은 열리는데 그림이 안보인다 (0) | 2022.01.06 |
엑셀파일 읽기 방법 (0) | 2021.12.31 |
파이썬 리스트 곱하기 대 넘파이 배열 곱하기 (0) | 2021.12.26 |
댓글