개발을 하게 되면, 정말 필수적으로 데이터 핸들링을 하게 되는게 날짜와 시간이다. 파이썬으로 날짜 및 시간 데이터를 핸들링할 때 정말 많이 사용하는 라이브러리 중 하나인 datetime으로 날짜와 시간 데이터를 핸들링하는 방법에 대해 기록한다.
datetime 모듈
datetime 모듈은 날짜와 시간을 핸들링할 수 있도록 클래스를 제공한다. 즉, 날짜를 표현하기 위한 년, 월, 일을 표현하거나 날짜 형식 등을 바꿀 때 사용되는 모듈이다.
datetime 객체
datetime의 객체는 총 6가지로 구성이 되어 있다. 생성 방법은 아래와 같다.
1) date
datetime 모듈의 date 객체에 년(year), 월(month), 일(day)을 넣을경우 yyyy-mm-dd 형식으로 출력이 된다.
import datetime
print(datetime.date) # <class 'datetime.date'>
print(datetime.date(2023, 12, 7)) # 2023-12-07
2) time
time 객체는 시(hour), 분(minute), 초(second)를 입력할 경우 시:분:초 형태로 출력이 된다. 주의해야 할 점은 12시간이 아닌 24시간제로 출력이 된다.
import datetime
print(datetime.time(1, 12, 7)) # 01:12:07
print(datetime.time(13, 12, 7)) # 13:12:07
3) datetime
datetime 객체는 위의 1번과 2번인 date, time 객체의 모든 정보를 다 입력하면 연, 월, 일, 시, 분, 초 형태로 출력한다.
import datetime
print(datetime.datetime(2023, 12, 7, 13, 54, 30)) # 2023-12-07 13:54:30
4) timedelta
timedelta 객체는 특정 날짜를 기준으로 미래 날짜나 과거 날짜를 구할 수 있다.
timedelta에서 days 뿐만 아니라 seconds, microseconds, milliseconds, minutes, hours, weeks를 넣을 수 있다.
a. days
import datetime
today = datetime.date.today()
tomday = datetime.timedelta(days=30)
#현재 날짜
print(today) # 2023-12-07
#30일 후
print(today + tomday) # 2023-01-06
#30일 전
print(today - tomday) # 2023-11-07
b. weeks
import datetime
today = datetime.date.today()
tomday = datetime.timedelta(weeks=30)
#현재 날짜
print(today) # 2023-12-07
#30주 후
print(today + tomday) # 2023-07-04
#30주 전
print(today - tomday) # 2023-05-11
5) tzinfo
tzinfo 객체는 timezone을 tz로 축약한 것으로 타임존을 설정하는 객체라고 볼 수 있다.
import datetime
today = datetime.date.today()
print(today) #2023-12-07
print(datetime.datetime(today.year, today.month, today.day, 0, 0, 0, tzinfo=datetime.UTC)) #2023-12-07 00:00:00+00:00
datetime.strftime()
strftime()은 출력된 날짜를 문자열로 정해진 포맷에 따라 보여줄 때 사용한다. 예를 들어, YYYYmmdd형식을 YYYY-mm-dd 형식으로 나타내는 것처럼 말이다.
strftime()을 통한 날짜 포맷 변경 예시
import datetime
today = datetime.datetime.today()
print(today) # 2023-12-07 14:35:13.286782
print(datetime.datetime.strftime(today, '%Y%m%d')) #20231207
print(datetime.datetime.strftime(today, '%Y-%m-%d')) #2023-12-07
print(datetime.datetime.strftime(today, '%Y:%m:%d')) #2023:12:07
strftime()의 포맷 코드(지시자)
datetime으로 요일 출력하는 방법
datetime 모듈로 요일 출력하는 방법은 datetime의 weekday를 사용하면 된다. 0부터 6까지 리턴을 해주는데, 0부터 월요일로 맞추면 된다. 아래와 같이, 리스트에 저장을 하여 출력한다.
import datetime
week = ['월', '화', '수', '목', '금', '토', '일']
today = datetime.datetime.today()
print(today) # 2023-12-07 14:35:13.286782
print(week[today.weekday()]) #목
위와 같이, 리스트를 만들지 않고 영어로 요일을 출력할 수 있다. 위의 지시자 태그 중 하나인 A를 이용하면 된다.
import datetime
week = ['월', '화', '수', '목', '금', '토', '일']
today = datetime.datetime.today()
print(today) # 2023-12-07 14:35:13.286782
print(week[today.weekday()]) #목
print(today.strftime('%A')) #Thursday
참고
https://docs.python.org/ko/3/library/datetime.html
'Language > Python' 카테고리의 다른 글
[PYTHON] No module named 'cx_oracle' 문제 해결하기 (0) | 2024.01.19 |
---|---|
[Python] 파이썬 빠른 입출력(sys 모듈) (0) | 2023.12.27 |
[백준] 백준 30394번 회전하지 않는 캘리퍼스 파이썬(Python) (0) | 2023.12.14 |
[Python] 파이썬 출력함수 print() 사용법 및 예제 (1) | 2023.12.13 |
[Python] 파이썬(Python) 특정 경로에 있는 파일 또는 폴더를 특정 경로에 복사하는 방법(glob, shutil.copy(), os.mkdir()) (0) | 2023.11.14 |
[Python] 파이썬(Python) 엑셀 데이터 불러오는 방법(xlsx, csv) (0) | 2023.11.10 |
[Python] 파이썬(Python) SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 문제 해결 방법 (0) | 2023.11.10 |
[Python] 파이썬(Python) 리스트 다중 문자열 포함 여부 확인하기(all, any) (0) | 2023.10.30 |
최근댓글