728x90
[Python] 파이썬으로 날짜와 시간 다루기
날짜와 시간은 시계열 데이터 분석 및 애플리케이션 개발에서 핵심적인 역할을 합니다.
이 글에서는 파이썬을 사용해서 날짜와 시간을 처리하고 다양한 형식으로 출력하는 방법에 대해 작성해보려 합니다.
달력 출력하기
Python에서 calendar 모듈을 사용하여 달력을 출력할 수 있습니다.
calendar 모듈은 파이썬에서 날짜 및 시간 관련 작업을 수행할 때 유용하게 활용됩니다.
- 년도의 전체 달력 출력
1
2
3
|
#년도의 전체달력 출력
from calendar import calendar
print(calendar(2023))
|
- 특정월의 달력 출력
1
2
3
|
# 캘린더 calendar
from calendar import month
print(month(2023, 9))
|

- 특정월의 첫 요일과 일수 구하기
1
2
3
4
5
6
|
#특정 달의 첫 요일과 일수 구하기
import calendar
year = 2023
month = 9
first_day, num_days = calendar.monthrange(year, month)
print(f"{year}년 {month}월의 첫 요일: {first_day}, 총 일수: {num_days}") # 2023년 9월의 첫 요일: 4, 총 일수: 30
|
- 요일의 이름 출력
숫자로 표현된 요일을 실제 요일의 이름으로 얻으려면 다음과 같이 합니다.
1
2
3
4
5
|
#요일의 이름 출력
import calendar
day = 0 # 0부터 6까지 (월요일부터 일요일까지)
day_name = calendar.day_name[day]
print(day_name) # Monday 출력
|
- 요일의 약어 출력
1
2
3
4
|
#요일의 약어 출력
day = 2 # 0부터 6까지 (월요일부터 일요일까지)
day_abbr = calendar.day_abbr[day]
print(day_abbr) # Wed 출력
|
datetime 객체 활용
대부분의 금융데이터는 시계열 데이터로 구성되어 있습니다.
datetime은 날짜와 시간을 다루는데 파이썬에서 많이 사용하는 모듈 중의 하나 입니다.
- 현재시간 읽어오기
1
2
3
4
|
from datetime import datetime
# 현재시간
dt = datetime.today() # datetime.now()와 동일
dt
|
1
2
|
dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.microsecond
#(2023, 9, 22, 17, 4, 36, 636955)
|
- 날짜와 시간을 지정하여 객체 만들기
1
2
3
4
5
6
7
|
from datetime import datetime
dt = datetime(2023, 10, 1)
print(dt) #2023-10-01 00:00:00
dt = datetime(2023, 10, 1, 12, 50, 10)
print(dt) #2023-10-01 12:50:10
dt = datetime(year=2024, month=3, day=1)
print(dt) #2024-03-01 00:00:00
|
- 요일 구하기
1
2
|
#weekday() : 요일을 숫자로 변환하는 함수
dt.weekday() # 0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일
|
요일값이 0부터 시작하는 숫자로 반환되므로 이름을 얻고자하면 다음과 같이 문자열 리스트를 활용할 수 있습니다.
1
|
'월화수목금토일'[dt.weekday()] #금 출력
|
1
2
|
week_names = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
week_names[dt.weekday()] #Fri 출력
|
- 날짜 시간 포멧팅
1
2
3
|
from datetime import datetime
dt = datetime.today()
dt.isoformat() #2023-09-22T17:33:10.463115 출력
|
1
2
3
|
print ("%d-%02d-%02d" % (dt.year, dt.month, dt.day)) #2023-09-22
print ("%02d:%02d:%02d" % (dt.hour, dt.minute, dt.second)) #17:33:10
print ("%d년 %d월 %d일 %s요일" % (dt.year, dt.month, dt.day, '월화수목금토일'[dt.weekday()])) #2023년 9월 22일 금요일
|
- 날짜 시간을 문자열로, 문자열을 날짜 시간으로
datetime.strftime(): datetime → 문자열 datetime.strptime(): 문자열 → datetime |
1
2
3
4
5
6
|
# 시간을 문자열로 strftime()
print( dt.strftime("%Y-%m-%d") ) #2023-09-22
print( dt.strftime("%H:%M:%S") ) #17:33:10
print( dt.strftime("%Y-%m-%d %H:%M:%S") ) #2023-09-22 17:33:10
print( dt.strftime("%Y년 %m월 %d일 %H시 %M분") ) #2023년 09월 22일 17시 33분
|
1
2
3
4
5
6
7
8
9
|
# 문자열을 시간으로 strptime()
s = "2023-09-22 17:33:10"
dt = datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
print(dt) #023-09-22 17:33:10
s = "2023년 09월 22일 17시 33분"
dt = datetime.strptime(s, "%Y년 %m월 %d일 %H시 %M분")
print(dt) #2023-09-22 17:33:00
|
- 경과 시간, 이전/이후 시간 구하기
1
2
3
4
5
|
# 오늘 부터 100일 후 날짜
from datetime import datetime, timedelta
theday = datetime.now() + timedelta(days=100)
print(theday) #2023-12-31 17:43:19.035668
|
1
2
3
4
|
# 현재 부터 48시간 이후
theday = datetime.now() + timedelta(hours=48)
print(theday) #2023-09-24 17:44:43.106011
|
#파이썬 #프로그래밍 #코딩 #파이썬 날짜구하기 #파이썬 시간구하기 #datetime #날짜와 시간 #날짜포멧
728x90
'Data & Programming > Python' 카테고리의 다른 글
[Python] 파이썬으로 텍스트 처리와 단어 수 세기 (210) | 2023.09.24 |
---|---|
[Python] 파이썬의 오류(Error)와 예외처리(Exception Handling) (197) | 2023.09.19 |
[Python] 파이썬 함수와 클래스: 모듈화와 객체지향 프로그래밍의 핵심 (203) | 2023.09.18 |
[Python] 파이썬 조건문과 반복문: 제어 구조와 반복적인 작업 (120) | 2023.09.17 |
[Python] 파이썬의 자료구조 : 튜플, 리스트, 딕셔너리 (199) | 2023.09.16 |