728x90
반응형
Python 에서 strptime() 을 사용하시면 문자열을 날짜, 시간으로 변경할 수 있다.
더 자세한 정보는 공식문서를 확인하자.
https://docs.python.org/ko/3/library/datetime.html?highlight=strptime#
datetime — Basic date and time types
Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr...
docs.python.org
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 |
댓글