"Day dd Mon yyyy hh:mm:ss +/-xxxx" 형식으로 두 번 있다고 가정합니다. 여기서 Day는 첫 글자가 대문자인 세 글자의 요일입니다. Mon은 세 글자로 된 월의 이름이고 마지막으로 + 또는 - xxxx는 시간대를 나타냅니다. 예를 들어 +0530은 GMT보다 5시간 30분이 더 많다는 것을 나타냅니다(dd, hh, mm, ss와 같은 다른 형식은 설명이 필요 없음). 두 타임스탬프 사이의 절대적 차이를 초 단위로 찾아야 합니다.
파이썬을 사용하여 이 문제를 해결하기 위해 우리는 datetime 라이브러리를 사용할 것입니다. strptime()이라는 함수가 있는데 이것은 문자열 형식의 날짜를 datetime 객체로 변환합니다. 아래와 같은 형식 지정자가 거의 없습니다. −
- %a는 3자 형식으로 날짜를 나타냅니다.
- %d는 숫자 형식의 요일을 나타냅니다.
- %b는 세 글자 형식의 월을 나타냅니다.
- %Y는 yyyy 형식의 연도를 나타냅니다.
- %H는 hh 형식의 시간을 나타냅니다.
- %M은 mm 형식의 분을 나타냅니다.
- %S는 ss 형식의 초를 나타냅니다.
- %z는 +/- xxxx 형식의 시간대를 나타냅니다.
따라서 입력이 t1 ="Thu 15 Jul 2021 15:10:17 +0530" t2 ="Thu 15 Jul 2021 20:25:29 +0720"과 같으면 출력은 12312가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- t1 :=주어진 문자열에서 위에서 언급한 형식으로 처음 형식 변경
- t2 :=주어진 문자열에서 위에서 언급한 형식으로 두 번째 시간 형식 변경
- t1과 t2의 차이를 초 단위로 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
from datetime import datetime def solve(t1, t2): t1 = datetime.strptime(t1, "%a %d %b %Y %H:%M:%S %z") t2 = datetime.strptime(t2, "%a %d %b %Y %H:%M:%S %z") return abs(int((t1-t2).total_seconds())) t1 = "Thu 15 Jul 2021 15:10:17 +0530" t2 = "Thu 15 Jul 2021 20:25:29 +0720" print(solve(t1, t2))
입력
"Thu 15 Jul 2021 15:10:17 +0530", "Thu 15 Jul 2021 20:25:29 +0720"
출력
12312