Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

두 타임 스탬프의 차이를 찾는 Python 프로그램

<시간/>

"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