Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- dacon
- Git
- 코로나19
- AI 경진대회
- hackerrank
- gs25
- leetcode
- Docker
- 더현대서울 맛집
- 금융문자분석경진대회
- 캐치카페
- 프로그래머스
- Kaggle
- ChatGPT
- 맥북
- PYTHON
- 프로그래머스 파이썬
- github
- programmers
- 우분투
- SW Expert Academy
- ubuntu
- 자연어처리
- 백준
- 데이콘
- 파이썬
- Baekjoon
- Real or Not? NLP with Disaster Tweets
- 편스토랑 우승상품
- 편스토랑
Archives
- Today
- Total
솜씨좋은장씨
[Python] datetime의 strptime을 활용하여 시간과 시간 사이의 차이 구하는 방법 본문
728x90
반응형
개발을 하다 보면 종종 특정 시간과 특정 시간 사이에 얼마나 많은 시간이 흘렀는지 구해야 할 경우가 있습니다.
직접 시간을 계산하는 코드를 작성해도 되지만 2시 39분 -> 5시 25분 까지 얼마나 걸렸어? 라고 계산을 한다고 했을때
1시간은 60초라는 것을 감안하면서 계산하기가 귀찮기도 합니다.
이를 조금 더 쉽게 계산하는 방법이 없을까! 하다가 찾은것이 바로 datetime의 strptime 을 활용하는 방법입니다.
👨🏻💻 datetime 의 strptime
strptime은 문자열로 되어있는 날짜 또는 시간을 datetime 객체로 바꾸어주는 함수입니다.
😎 사용 예시
* from datetime import datetime 으로 datetime을 import 한 뒤에 사용
문자열 | strptime | 결과 |
2시 30분 | datetime.strptime("2시 30분", "%H시 %M분") | datetime.datetime(1900, 1, 1, 2, 30) |
2:30 | datetime.strptime("2:30", "%H:%M") | datetime.datetime(1900, 1, 1, 2, 30) |
0001년 02월 03일 4시 56분 07초 | datetime.strptime("0001년 02월 03일 4시 56분 07초", "%Y년 %m월 %d일 %H시 %M분 %S초") | datetime.datetime(1, 2, 3, 4, 56, 7) |
종류 | strptime 에 적는 값 |
년 | %Y |
월 | %m |
일 | %d |
시간 | %H |
분 | %M |
초 | %S |
기본적으로 위의 값들을 조합하여 사용합니다.
👨🏻💻 strptime을 활용하여 시간과 시간 사이의 시간 계산하기
만약 문자열로 주어진 시간 "2시 30분"과 "5시 23분" 사이의 시간이 얼마인지를 구한다고 하면
from datetime import datetime
time1 = datetime.strptime("2시 30분", "%H시 %M분")
time2 = datetime.strptime("5시 23분", "%H시 %M분")
위와 같이 datetime의 strptime을 활용하여 datetime 객체로 바꾸어준 다음
elapsed_time = time2 - time1
더 뒤의 시간에서 앞의 시간을 빼줍니다.
datetime.timedelta(seconds=10380)
빼고 나면 elapsed_time의 값은 위와 같이 datetime의 timedelta 객체가 됩니다.
second = elapsed_time.seconds
여기서 아까 만든 timedelta 값에서 second ( 초 ) 정보만 빼오기 위해서는
.seconds 를 붙여 값을 빼면 됩니다.
def convert_second_to_hour_minute_second(second):
hour = second // 3600
minute = (second // 60) - (hour * 60)
sec = second - (minute * 60) - (hour * 3600)
return hour, minute, sec
해당 값을 시간 / 분 / 초로 바꾸는 것은 위의 함수를 활용하시면 됩니다.
읽어주셔서 감사합니다.
'Programming > Python' 카테고리의 다른 글
Comments