Python - 날짜와 시간
안녕하세요, 미래의 Python 마법사들! 오늘은 Python에서 날짜와 시간의 왕국을 탐험하는 흥미로운 여정을 떠날 거예요. 여러분의 친절한 이웃 컴퓨터 교사로서, 이 모험을 안내해 드리게 되어 기쁩니다. 그럼, 가상의 지팡이(키보드)를 장착하고, 함께 빠져들어봅시다!
틱 인터벌이란?
날짜와 시간을 살펴보기 전에, 기본적인 개념인 틱 인터벌에 대해 이해해야 합니다. 컴퓨터의 세상에서 시간은 종종 틱으로 측정됩니다. 그런데 틱이 정확히 무엇인가요?
틱은 여러분의 컴퓨터의 심장 박동과 같습니다. 이는 컴퓨터의 시간을 측정할 수 있는 가장 작은 시간 단위입니다. Python에서는 틱을 1970년 1월 1일 00:00:00 UTC부터 지난 초 수로 측정합니다. 이 시점은 종종 "에포크"라고 불립니다.
현재 틱 값을 어떻게 가져올 수 있는지 보겠습니다:
import time
ticks = time.time()
print("현재 틱 값:", ticks)
이 코드를 실행하면 큰 숫자가 출력될 텐데, 이는 에포크 이후 지난 초 수입니다. 정말 멋질 것 아닙니까?
TimeTuple이란?
이제 TimeTuple에 대해 이야기해봅시다. 새로운 춤보다는 (비록 춤의 이름처럼 들립니다만!), Python이 시간을 표현하는 방법으로 더 많은 것입니다.
TimeTuple은 시간의 다양한 측면을 나타내는 9개의 요소로 구성된 튜플입니다:
인덱스 | 속성 | 값 |
---|---|---|
0 | 연도 | (예: 2023) |
1 | 월 | 1-12 |
2 | 일 | 1-31 |
3 | 시간 | 0-23 |
4 | 분 | 0-59 |
5 | 초 | 0-61 (윤년 초는 60과 61) |
6 | 주간일 | 0-6 (0은 월요일) |
7 | 연중일 | 1-366 |
8 | DST | -1, 0, 1 (일광 절약 시간 플래그) |
이것이 너무 많이 먹먹할 것 같다고 걱정하지 마세요. 이 요소들을 우리의 수업에서 사용하며, 곧 익숙해질 거예요!
현재 시간 가져오기
간단한 것부터 시작해볼까요? 현재 시간을 가져오는 것입니다. Python에서는 time
모듈을 사용하면 매우 쉽게 할 수 있습니다:
import time
current_time = time.localtime()
print("현재 시간:", current_time)
이를 실행하면 TimeTuple이 출력됩니다. 각 숫자는 우리가 방금 본 표의 요소에 해당합니다. 예를 들어, time.struct_time(tm_year=2023, tm_mon=6, tm_mday=15, tm_hour=14, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=166, tm_isdst=0)
라고 출력되면, 이는 2023년 6월 15일 오후 2시 30분을 의미합니다.
포맷된 시간 가져오기
TimeTuple은 컴퓨터에게는 유용하지만, 인간에게는 매우 불편합니다. 시간을 더 읽기 쉽게 포맷化해보겠습니다:
import time
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("포맷된 시간:", formatted_time)
이는 "2023-06-15 14:30:00"과 같은 형식으로 무엇인가를 인쇄할 것입니다. 훨씬 나은 것 아닙니까? %Y
, %m
, %d
등은 Python에 시간 요소를 어떻게 배치할지 알려주는 포맷 코드입니다. Python에 시간을 어떻게 보고 싶은지 주는 템플릿 같은 것입니다.
월별 캘린더 가져오기
이제 좀 더 한 단계 나아가, 한 달의 캘린더를 인쇄해보겠습니다. 이를 위해 calendar
모듈을 사용합니다:
import calendar
year = 2023
month = 6
print(calendar.month(year, month))
이는 2023년 6월의 아주 깔끔하게 포맷된 캘린더를 인쇄합니다. Python 프로그램 안에 작은 데스크 캘린더를 가지는 것과 같아요!
time 모듈
이미 time
모듈을 조금 사용했지만, 더 깊이 탐구해보겠습니다. 이 모듈은 다양한 시간 관련 함수를 제공합니다. 여기 몇 가지 유용한 함수가 있습니다:
import time
print("에포크 이후 지난 초:", time.time())
print("현재 로컬 시간:", time.ctime())
print("2초간 잠자리...")
time.sleep(2)
print("깨어나서!")
sleep()
함수는 프로그램을 잠시 멈추고 싶을 때 매우 유용합니다. 코드에게 빠른 잠자리를 잔다는 것 같아요!
calendar 모듈
한 달을 인쇄하는 것보다 calendar
모듈은 더 많은 것을 할 수 있습니다:
import calendar
print("2023년은 윤년입니까?", calendar.isleap(2023))
print("2000년과 2050년 사이 윤년 수는 몇 개입니까?", calendar.leapdays(2000, 2050))
print("2023-06-15는 주의 어떤 날입니까?", calendar.weekday(2023, 6, 15))
이 함수들은 캘린더와 날짜를 쉽게 작업할 수 있게 해줍니다. 더 이상 손가락으로 윤년을 세 필요가 없어요!
Python datetime 모듈
datetime
모듈은 Python에서 시간 조작의 스위스 Army 톱니칼입니다. time
과 calendar
모듈의 기능을 결합하고, 더 많은 기능을 추가합니다.
from datetime import datetime, date, time
# 현재 날짜와 시간
now = datetime.now()
print("현재 날짜와 시간:", now)
# 특정 날짜 생성
my_birthday = date(1990, 5, 15)
print("제 생일:", my_birthday)
# 특정 시간 생성
alarm = time(7, 30, 0)
print("알람 시간:", alarm)
datetime
를 사용하면 날짜와 시간을 쉽게 생성, 조작 및 포맷화할 수 있습니다.
Python date 객체
datetime
모듈의 date
객체는 날짜(연도, 월, 일)로 작업할 수 있게 해줍니다:
from datetime import date
today = date.today()
print("오늘의 날짜:", today)
print("연도:", today.year)
print("월:", today.month)
print("일:", today.day)
이는 오늘의 날짜를 알고, 그 날에 대해 모든 것을 말할 수 있는 스마트 캘린더 같아요!
Python time 객체
마찬가지로, time
객체는 시간(시, 분, 초, 마이크로초)로 작업할 수 있게 해줍니다:
from datetime import time
lunch_time = time(12, 30, 0)
print("점심 시간:", lunch_time)
print("시:", lunch_time.hour)
print("분:", lunch_time.minute)
print("초:", lunch_time.second)
이제 코딩 휴식을 정확하게 예약할 수 있습니다!
Python datetime 객체
datetime
객체는 date
과 time
을 결합하여, 두 가지 모두에 대한 통제를 제공합니다:
from datetime import datetime
now = datetime.now()
print("현재 날짜와 시간:", now)
print("현재 연도:", now.year)
print("현재 월:", now.month)
print("현재 일:", now.day)
print("현재 시:", now.hour)
print("현재 분:", now.minute)
print("현재 초:", now.second)
이는 현재 순간에 대해 모든 것을 아는 슈퍼 파워드 워치 같아요!
Python timedelta 객체
마지막으로, timedelta
에 대해 이야기해봅시다. 이 객체는 시간의 기간을 나타내며, 날짜 계산에 매우 유용합니다:
from datetime import datetime, timedelta
now = datetime.now()
print("현재 날짜와 시간:", now)
# 1일 더하기
tomorrow = now + timedelta(days=1)
print("내일 이 시간:", tomorrow)
# 1주 빼기
last_week = now - timedelta(weeks=1)
print("지난 주 이 시간:", last_week)
timedelta
를 사용하면 코드에서 미래와 과거의 날짜를 쉽게 계산할 수 있어요! 정말 많은 응용 프로그램에 유용합니다.
그리고 이렇게 끝났습니다, 제 젊은 Python 마법사들! 우리는 Python에서 날짜와 시간의 흥미로운 세계를 탐험했습니다. 기억하세요, 연습이 나쁜 선생님 없다는 말이 있습니다. 이 개념들을 실험해 보세요. 알고보면, 진짜 코딩 시간 루드로서 시간을 조작할 준비가 되어 있을 거예요!
Credits: Image by storyset