728x90
반응형
Python 에서 strptime() 을 사용하시면 문자열을 날짜, 시간으로 변경할 수 있다.
더 자세한 정보는 공식문서를 확인하자.
https://docs.python.org/ko/3/library/datetime.html?highlight=strptime#
strptime()
from datetime import datetime
import time
datetime_string = "2021년 12월 31일 13시 35분 42.657813초"
datetime_format = "%Y년 %m월 %d일 %H시 %M분 %S.%f초"
datetime_result = datetime.strptime(datetime_string, datetime_format)
print(type(datetime_result)) # <class 'datetime.datetime'>
print(datetime_result) # 2021-12-31 13:35:42.657813
time_result = time.strptime(datetime_string, datetime_format)
print(type(time_result)) # <class 'time.struct_time'>
print(time_result) # time.struct_time(tm_year=2021, tm_mon=12, tm_mday=31, tm_hour=13, tm_min=35, tm_sec=42, tm_wday=4, tm_yday=365, tm_isdst=-1)
datetime_string = "2021-12-31 13:35:42.657813"
datetime_format = "%Y-%m-%d %H:%M:%S.%f"
datetime_result = datetime.strptime(datetime_string, datetime_format)
print(type(datetime_result)) # <class 'datetime.datetime'>
print(datetime_result) # 2021-12-31 13:35:42.657813
time_result = time.strptime(datetime_string, datetime_format)
print(type(time_result)) # <class 'time.struct_time'>
print(time_result) # time.struct_time(tm_year=2021, tm_mon=12, tm_mday=31, tm_hour=13, tm_min=35, tm_sec=42, tm_wday=4, tm_yday=365, tm_isdst=-1)
datetime_string = "12/31 2021"
datetime_format = "%m/%d %Y"
datetime_result = datetime.strptime(datetime_string, datetime_format)
print(type(datetime_result)) # <class 'datetime.datetime'>
print(datetime_result) # 2021-12-31 00:00:00
time_result = time.strptime(datetime_string, datetime_format)
print(type(time_result)) # <class 'time.struct_time'>
print(time_result) # time.struct_time(tm_year=2021, tm_mon=12, tm_mday=31, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=365, tm_isdst=-1)
strptime() 을 사용하여 위와 같이 문자열을 날짜 및 시간 타입의 datetime 객체로 변환하여 사용할 수 있다.
datetime 모듈 뿐만 아니라 time 모듈에도 사용 가능하다.
strptime()에 사용되는 포맷 코드는 예시에 사용된 것 이외에도 아주 많은 것들이 있다.
strptime 포맷 코드 표
그룹 | 코드 | 의미 |
년 | %Y | 연도 (전체) |
%y | 연도 (뒤에 2자리만) | |
월 | %m | 월 |
%B | Locale 월 표현 (전체) | |
%b | Locale 월 표현 (축약형) | |
일 | %d | 일 |
%j | 연중 일 | |
시 | %H | 시 (24시간제) |
%I | 시 (12시간제) | |
%p | Locale 오전, 오후 | |
분 | %M | 분 |
초 | %S | 초 |
마이크로초 | %f | 마이크로초 |
요일 | %w | 요일 (0 : 일요일, 6일 : 토요일) |
%A | Locale 요일 (전체) | |
%a | Locale 요일 (축약형) | |
주 | %W | 연중 몇 번째 주인지 표현 (월요일 시작 기준) |
%U | 연중 몇 번째 주인지 표현 (일요일 시작 기준) | |
날짜 표현 | %c | Locale 날짜와 시간 표현 |
%x | Locale 날짜 표현 | |
%X | Locale 시간 표현 | |
문자 표현 | %% | 리터럴 '%' 문자 |
위 표를 참고해서 원하는 포맷으로 날짜 및 시간 형식을 원하는 형식의 문자열로 변경하여 사용하면된다.
from datetime import datetime
# 인풋을 아웃풋으로 변환하여 출력하라 인풋은 날짜,문자열 등 다양/ 아웃풋은 2023-02-01 00:00:00 이렇게 나와야함
# Q3
input = "김은정은 2023년 02월 01일 입력을 하였다."
ans = input.split()
#print(ans) # ['김은정은', '2023년', '02월', '01일', '입력을', '하였다.']
#print(ans[1], ans[2], ans[3]) # 2023년 02월 01일
#print(ans[1] + ans[2] + ans[3]) # 2023년02월01일
result = ans[1] + ans[2] + ans[3]
#print(result, type(result)) # 2023년02월01일 <class 'str'>
date3_format = "%Y년%m월%d일"
date3 = datetime.strptime(result, date3_format)
print(date3) # 2023-02-01 00:00:00
728x90
반응형
'Python' 카테고리의 다른 글
[Python] 진법변환 (0) | 2023.02.21 |
---|---|
[Python] 몫과 나머지 , divmod() (0) | 2023.02.21 |
[Python] 날짜, 시간을 문자열로 변환하는 방법 (date to string, time to string) - strftime (2) | 2023.02.03 |
[함수] range() 과 enumerate() (0) | 2023.01.22 |
[라이브러리/itertools] combinations , product , permutations (0) | 2023.01.17 |
댓글