스탠다드 라이브러리에 있는 datetime 모듈은 '날짜'와 '시간'을 다루기 위한 다양한 '클래스'를 갖추고 있다.
'클래스' 개념은 아직 배우지 않았지만, 일단은 몰라도 이 모듈을 사용하는 데에는 문제가 없다고 한다. : )
1) datetime 값 생성
2021년 1월 22일을 파이썬으로 표현하는 방법!
import datetime
pi_day = datetime.datetime(2020, 3, 14)
print(pi_day)
print(type(pi_day))
#결과
2021-01-22 00:00:00
<class 'datetime.datetime'>
시간은 자동으로 00시 00분 00초로 설정이 되어있다. 이 시간도 직접 설정할 수 있다.
import datetime
pi_day = datetime.datetime(2021, 2, 22, 14, 54, 15)
print(pi_day)
print(type(pi_day))
#결과
2021-01-22 14:54:15
<class 'datetime.datetime'>
2) 오늘 날짜
import datetime
today = datetime.datetime.now()
print(today)
print(type(today))
#결과
2022-02-22 14:55:23.360266
<class 'datetime.datetime'>
3) timedelta
두 datetime 값 사이의 기간을 알고 싶으면, 숫자 뺄셈을 하듯이 빼면 된다.
이 값은 날짜 간의 차이를 나타내는 타입이라고 생각하면 된다.
import datetime
today = datetime.datetime.now()
pi_day = datetime.datetime(2021, 2, 20, 12, 15, 3)
print(today - pi_day)
print(type(today - pi_day))
#결과
2 days, 2:40:20.360266
<class 'datetime.timedelta'>
반대로 timedelta를 생성해서 datetime 값에 더해 줄 수도 있다.
import datetime
today = datetime.datetime.now()
my_timedelta = datetime.timedelta(days=5, hours=3, minutes=10, seconds=50)
print(today)
print(today + my_timedelta)
#결과
2021-02-22 14:54:24.221660
2021-02-27 17:05:14.221660
4) datetime 해부하기
datetime 값에서 연도, 월, 일 같은 값들을 추출하는 방법
import datetime
today = datetime.datetime.now()
print(today)
print(today.year) # 연도
print(today.month) # 월
print(today.day) # 일
print(today.hour) # 시
print(today.minute) # 분
print(today.second) # 초
print(today.microsecond) # 마이크로초
5) datetime 포맷팅 - strftime
import datetime
today = datetime.datetime.now()
print(today)
print(today.strftime("%A, %B %dth %Y"))
#결과
2020-04-05 18:09:55.233501
Monday, February 22th 2021
* 포맷 코드설명예시
%a | 요일 (짧은 버전) | Mon |
%A | 요일 (풀 버전) | Monday |
%w | 요일 (숫자 버전, 0~6, 0이 일요일) | 5 |
%d | 일 (01~31) | 23 |
%b | 월 (짧은 버전) | Nov |
%B | 월 (풀 버전) | November |
%m | 월 (숫자 버전, 01~12) | 10 |
%y | 연도 (짧은 버전) | 16 |
%Y | 연도 (풀 버전) | 2016 |
%H | 시간 (00~23) | 14 |
%I | 시간 (00~12) | 10 |
%p | AM/PM | AM |
%M | 분 (00~59) | 34 |
%S | 초 (00~59) | 12 |
%f | 마이크로초 (000000~999999) | 413215 |
%Z | 표준시간대 | PST |
%j | 1년 중 며칠째인지 (001~366) | 162 |
%U | 1년 중 몇 주째인지 (00~53, 일요일이 한 주의 시작이라고 가정) | 35 |
%W | 1년 중 몇 주째인지 (00~53, 월요일이 한 주의 시작이라고 가정) | 35 |
'TIL > Python' 카테고리의 다른 글
[파이썬] random 모듈 (0) | 2021.02.22 |
---|---|
[파이썬] 모듈 (0) | 2021.02.22 |
[파이썬] 리스트와 문자열 정리 (0) | 2021.02.22 |
[파이썬] Aliasing(가명) (0) | 2021.02.15 |
[파이썬] 사전 활용법(dict) (0) | 2021.02.15 |