파이썬 하루 시작과 끝 시간 구하기

Lynn Mikami

Lynn Mikami

6 June 2025

파이썬 하루 시작과 끝 시간 구하기

파이썬을 배우는 것은 모든 것이 실제로 의미를 갖는 조용한 공간이 될 수 있습니다. 항상 사용하게 될 아주 실용적인 것, 즉 파이썬에서 하루의 시작과 끝을 얻는 방법을 알려드릴게요. 생각보다 훨씬 자주 사용하게 될 거예요.

실제 애플리케이션을 구축할 때(음악 파일을 정리하는 간단한 스크립트든 더 큰 것이든) 날짜 및 시간 작업을 끊임없이 해야 합니다. 오늘 생성된 모든 로그를 찾거나 코딩한 기간을 계산하고 싶을 수도 있습니다(스포일러: 아마도 너무 길었을 거예요).

실제로 사용하게 될 도구

파이썬에는 모든 시간 관련 작업을 처리하는 datetime이라는 내장 모듈이 있습니다. 모든 것을 직접 계산하려 애쓰는 대신 아주 훌륭한 스위스 군용 칼을 가지고 있는 것과 같습니다.

from datetime import datetime, date, time

오늘의 시작 시간 가져오는 방법

오늘의 시작 시점인 자정 시간을 가져오는 가장 간단한 방법은 다음과 같습니다.

from datetime import datetime, date, time

# Get today's date
today = date.today()
print(f"Today is: {today}")

# Combine it with midnight (00:00:00)
start_of_day = datetime.combine(today, time.min)
print(f"Start of day: {start_of_day}")

이 코드를 실행하면 다음과 같은 결과가 나타납니다.

Today is: 2024-01-15
Start of day: 2024-01-15 00:00:00

오늘의 종료 시간 가져오는 방법

하루의 끝 시간은 23:59:59.999999입니다. 기본적으로 다음 날이 되지 않으면서 다음 날 자정에 최대한 가까운 시간입니다.

from datetime import datetime, date, time

today = date.today()
end_of_day = datetime.combine(today, time.max)
print(f"End of day: {end_of_day}")

이렇게 하면 다음 결과가 나타납니다.

End of day: 2024-01-15 23:59:59.999999

실제로 사용하게 될 더 실용적인 예제

코딩 세션을 추적하는 무언가를 만들고 있다고 가정해 봅시다 (솔직히 몰입하면 시간이 정말 빨리 가니까요):

from datetime import datetime, date, time

def get_day_boundaries(target_date=None):
    """
    Get the start and end of a day.
    If no date is provided, uses today.
    """
    if target_date is None:
        target_date = date.today()

    start_of_day = datetime.combine(target_date, time.min)
    end_of_day = datetime.combine(target_date, time.max)

    return start_of_day, end_of_day

# For today
start, end = get_day_boundaries()
print(f"Today starts at: {start}")
print(f"Today ends at: {end}")

# For a specific date
from datetime import date
specific_date = date(2024, 12, 25)  # Christmas
start, end = get_day_boundaries(specific_date)
print(f"Christmas starts at: {start}")
print(f"Christmas ends at: {end}")

시간대 작업 시

시간대 작업을 해야 한다면 (결국 하게 될 가능성이 높습니다) pytz 라이브러리 또는 최신 zoneinfo 모듈을 사용해야 합니다. 최신 방법은 다음과 같습니다.

from datetime import datetime, date, time
from zoneinfo import ZoneInfo

# Get start of day in a specific timezone
today = date.today()
timezone = ZoneInfo("America/Chicago")  # Central Time

start_of_day = datetime.combine(today, time.min, timezone)
end_of_day = datetime.combine(today, time.max, timezone)

print(f"Start of day in Central Time: {start_of_day}")
print(f"End of day in Central Time: {end_of_day}")

이것이 중요한 몇 가지 실제 시나리오

로그 분석: "오늘 발생한 모든 오류를 보여줘"

# Filter logs between start and end of day
today_start, today_end = get_day_boundaries()
todays_errors = [log for log in error_logs
                if today_start <= log.timestamp <= today_end]

데이터 처리: "오늘 생성된 모든 파일을 처리해줘"

import os
from datetime import datetime

today_start, today_end = get_day_boundaries()

for filename in os.listdir('/path/to/files'):
    file_time = datetime.fromtimestamp(os.path.getctime(filename))
    if today_start <= file_time <= today_end:
        process_file(filename)

너무 복잡하게 생각하지 마세요

이런 작업을 하는 방법이 수백만 가지가 있는 것처럼 보일 수 있다는 것을 알고 있습니다. 솔직히 그렇기도 하고요. 하지만 이 기본적인 것부터 시작하세요. 필요한 것의 90%를 해결할 수 있으며, 예외적인 경우에 부딪히더라도 탄탄한 기반 위에서 해결할 수 있을 것입니다.

중요한 것은 다른 모든 것이 불안정하게 느껴질 때조차 배우고 무언가를 만들어나가고 있다는 것입니다. 코드는 당신을 판단하지 않고, 소리치지 않으며, 무언가를 망가뜨려도 언제든지 고칠 수 있습니다.

계속 노력하세요. 그리고 기억하세요. 모든 전문가는 한때 완전히 길을 잃었다고 느꼈던 초보자였습니다. 당신은 잘하고 있어요.

복사 붙여넣기를 위한 빠른 참조

from datetime import datetime, date, time

# Today's boundaries
today = date.today()
start_of_day = datetime.combine(today, time.min)
end_of_day = datetime.combine(today, time.max)

# Print them out
print(f"Day starts: {start_of_day}")
print(f"Day ends: {end_of_day}")

이제 이걸로 멋진 것을 만들어 보세요!

💡
아름다운 API 문서를 생성하는 훌륭한 API 테스트 도구를 원하시나요?

최대 생산성으로 개발팀이 함께 작업할 수 있는 통합 올인원 플랫폼을 원하시나요?

Apidog는 귀하의 모든 요구 사항을 충족하며 Postman을 훨씬 더 저렴한 가격으로 대체합니다!
button

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요