Python에서 날짜와 시간으로 작업할 때 종종 시차를 계산해야 합니다. 이 자습서에서는 시간, 분, 초 단위로 두 타임스탬프 간의 차이를 계산하는 방법을 배웁니다.
이 튜토리얼을 마치면 다음을 배우게 될 것입니다.
- 파이썬의 datetime 모듈을 사용하여 날짜와 시간을 다루는 방법,
- timedelta 개체가 무엇이며 어떻게 유용하며
- 두 타임스탬프 사이의 시간 차이를 시, 분, 초 단위로 계산합니다.
시작하자.
목차
Python의 datetime 모듈을 사용하는 방법
Python에서 날짜와 시간으로 작업하려면 datetime 모듈을 사용합니다. datetime 모듈은 Python 표준 라이브러리의 일부입니다. 따라서 다음과 같이 작업 환경으로 바로 가져올 수 있습니다.
import datetime
시차를 계산하려면 두 개의 다른 타임스탬프를 만들어야 합니다. 다음을 생성하도록 선택할 수 있습니다.
- 두 개의 날짜 개체,
- 두 개의 시간 개체 또는
- 날짜와 시간의 조합 – datetime 객체.
파이썬에서 날짜 객체를 만드는 방법
datetime 모듈에서 날짜 클래스를 가져오겠습니다. Python에서 날짜 객체를 생성하려면 일반 구문 datetime.date(
from datetime import date date1 = datetime.date(2022,3,27) print(date1) # Output: 2022-03-27
koreantech.org Python 컴파일러에서 코드를 테스트해 볼 수 있습니다. 또는 컴퓨터에 Python을 설치합니다.
위와 같이 날짜를 인쇄할 때 날짜 형식은 YYYY-MM-DD 형식입니다.
참고: 앞에 0이 없는 정수로 월을 지정해야 합니다. 날짜를 기록할 때 월 앞에 0을 추가하는 데 익숙할 것입니다.
예를 들어, 연도의 6번째 달인 6월에 날짜를 지정하려면 06이 아닌 6을 사용하십시오.
예를 들어, 다음 코드 스니펫을 실행해 보십시오. 여기서 월은 3이 아닌 03으로 언급됩니다. 다음과 같이 구문 오류가 발생하는 것을 볼 수 있습니다.
date1 = datetime.date(2022,03,27) print(date1) # Error Message File "<ipython-input-12-6eb72084e6ce>", line 1 date1 = datetime.date(2022,03,27) ^ SyntaxError: invalid token
이제 파이썬에서 시간 객체를 생성하는 방법을 살펴보겠습니다.
파이썬에서 시간 객체를 만드는 방법
시간 개체를 만들기 위해 시간 클래스를 가져오겠습니다. 모든 Python 시간 객체는 시간, 분, 초 및 마이크로초와 같은 클래스 속성을 지정하여 시간 클래스를 사용하여 생성할 수 있습니다.
그러나 이러한 모든 속성은 선택 사항입니다. 두 번째와 같이 특정 속성을 지정하지 않으면 기본적으로 0으로 설정됩니다.
다음 코드 조각은 time1 시간 개체를 만드는 방법을 보여줍니다. 날짜 개체와 마찬가지로 시간 개체를 인쇄하여 형식이 지정된 시간을 볼 수 있습니다.
from datetime import time time1 = datetime.time(13,27,45,4600) print(time1) # Output: 13:27:45.004600
Python에서 datetime 객체를 만드는 방법
보시다시피 날짜 개체에는 시간에 대한 정보가 없습니다. 그리고 time 객체는 날짜에 대한 정보를 포함하지 않습니다.
그러나 실제로는 날짜와 시간 정보가 모두 필요합니다. 따라서 대신 datetime 클래스를 사용하는 것이 좋습니다.
아래와 같이 Python에서 datetime 클래스에 액세스하고 datetime 객체를 생성할 수 있습니다.
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) print(dt1) # Output: 2022-03-27 13:27:45.046000
이제 두 번째 속성이 없는 다른 datetime 객체 dt2를 생성해 보겠습니다. 기본값인 0으로 설정되어 있는 것을 볼 수 있습니다.
dt2 = datetime.datetime(2022,6,30,14,28) print(dt2) # Output: 2022-06-30 14:28:00
지금까지 Python에서 날짜, 시간 및 날짜 시간으로 타임스탬프를 만드는 방법을 배웠습니다. 이제 두 타임스탬프 간의 차이를 계산하는 방법을 알아볼 차례입니다.
다음 섹션으로 이동하여 알아보십시오.
파이썬에서 timedelta 객체를 사용하는 방법
Python에서 timedelta는 시간 범위를 나타냅니다. 두 날짜, 시간 또는 날짜/시간 개체 간의 차이입니다.
두 개의 날짜, 시간 또는 날짜/시간 개체를 더하거나 빼면 timedelta 개체가 생성됩니다. 이 timedelta 객체에는 시차를 계산하는 데 도움이 되는 유용한 속성과 메서드가 있습니다.
이제 두 날짜/시간 개체 dt1과 dt2의 차이를 계산해 보겠습니다.
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) dt2 = datetime.datetime(2022,6,30,14,28) tdelta = dt2 - dt1 print(tdelta) print(type(tdelta)) # Output 95 days, 1:00:14.954000 <class 'datetime.timedelta'>
위의 코드 조각에서 tdelta 변수가 dt1과 dt2 사이의 시간 차이를 보유하고 있음을 알 수 있습니다. 그리고 tdelta의 유형은 Python의 내장 함수를 사용하여 timedelta 클래스로 확인됩니다. 유형() 기능.
이제 다른 예제를 코딩해 보겠습니다.
두 날짜 사이의 시차를 찾는 방법
간단하면서도 흥미로운 예를 들어보겠습니다.
문제: 현재 날짜(오늘)와 생일 사이의 시차를 계산합니다.
이렇게 하려면 오늘을 첫 번째 타임스탬프로 설정하고 생일을 두 번째 타임스탬프로 설정합니다.
첫 번째 단계로 두 개의 datetime 객체를 생성해 보겠습니다.
- 오늘은 하나, 오늘이라고 합시다.
- 너의 생일을 위한 또 다른, bday라고 부르자
datetime 클래스에는 현재 현지 날짜와 시간을 제공하는 now() 메서드가 있습니다. 따라서 get today(참조 날짜)를 사용하겠습니다.
today = datetime.datetime.now() print(today) # Sample Output: 2022-01-22 09:10:18.489538
아래 코드에서 bday를 생일로 바꾸면 올해 생일까지 남은 시간을 계산할 수 있습니다.
생일이 지난 후에 이 글을 읽고 있다면 bday를 다음 생일로 자유롭게 설정하십시오.
bday = datetime.datetime(2022,8,30,11,59) print(bday) # Sample Output: 2022-08-30 11:59:00
다음 단계는 앞에서 설명한 대로 timedleta 객체인 time_diff를 계산하는 것입니다. 단순히 오늘을 bday에서 빼면 시차가 생깁니다.
time_diff = bday - today print(f"Your birthday is in {time_diff}") # Output Your birthday is in 220 days, 2:46:00.127416
남은 일 수를 확인하려면 다음과 같이 time_diff에서 days 속성을 사용하십시오.
tdays = time_diff.days print(f"Your birthday is in {tdays} days.") # Output Your birthday is in 220 days.
초 단위로 시차를 찾는 방법
이제 생일이 몇 초 남았는지 계산해 보겠습니다.
총 시간 차이를 초 단위로 계산하려면 timedelta 객체 time_diff에서 total_seconds() 메서드를 사용합니다.
tsecs = time_diff.total_seconds() print(f"Your birthday is {tsecs} seconds away.") # Output Your birthday is 19017960.127416 seconds away.
글쎄요, 너무 오래 기다리셨습니다!
즉, 이제 두 타임스탬프 간의 시간 차이를 초 단위로 계산하는 방법을 알게 되었습니다.
이제 몇 가지 기본 사항을 다시 살펴보고 다음을 적어 보겠습니다. 하루는 24시간으로 이루어져 있고, 1시간은 60분이며, 60초는 1분을 구성합니다.
이것은 아래 이미지에 요약되어 있습니다.
시, 분, 초
따라서 초에서 분, 시간, 일로 변환하려면 다음 표를 사용하고 해당 변환 계수로 나눌 수 있습니다.
시간 변환 표
다음 섹션에서는 초 단위의 시차를 분과 시간으로 변환해 보겠습니다.
분 단위로 시차를 찾는 방법
시차를 분 단위로 얻으려면 총 초를 60으로 나누기만 하면 됩니다.
다음과 같이 tsecs를 60으로 나누고 tmins라는 변수에 저장해 보겠습니다.
tmins = tsecs/60 print(f"Your birthday is {tmins} minutes away.") # Output Your birthday is 316966.0021236 minutes away.
시차를 시간으로 찾는 방법
이제 시간 차이를 분 단위로 계산했으므로 이를 60의 인수로 나누어 시간 차이를 얻을 수 있습니다. 또는 총 초를 60*60 = 3600으로 나눌 수 있습니다.
thrs = tsecs/(60*60) print(f"Your birthday is {thrs} hours away.") # Output Your birthday is 5282.76670206 hours away.
이제 선택한 단위에서 시차를 계산하는 방법을 배웠습니다.
결론
이 자습서에서는 다음 방법을 배웠습니다.
- Python의 datetime 모듈을 사용하여 날짜와 시간을 만들고 작업합니다.
- timedelta 객체를 사용하여 시간 범위 또는 시차를 가져오고
- 초, 분, 시간으로 시차를 계산합니다.
이 튜토리얼이 도움이 되었기를 바랍니다. 이제 Python의 시차 계산에 대해 모두 알았으므로 기술을 연습할 때입니다.
즐거운 학습과 코딩!
여기에서 코드와 같거나 같지 않은 것을 작성하거나 파이썬으로 뱀 게임을 만드는 방법을 배우십시오.