import datetime

스탠다드 라이브러리에 있는 datetime 모듈은 '날짜'와 '시간'을 다루기 위한 다양한 '클래스'를 포함

datetime 값 생성

2020년 3월 14일을 파이썬으로 표현

pi_day = datetime.datetime(2020, 3, 14)
print(pi_day)
print(type(pi_day))
2020-03-14 00:00:00
<class 'datetime.datetime'>

시간은 자동으로 00시 00분 00초로 설정

pi_day = datetime.datetime(2020, 3, 14, 13, 6, 15)
print(pi_day)
print(type(pi_day))
2020-03-14 13:06:15
<class 'datetime.datetime'>

오늘 날짜

코드를 실행한 '지금 이 순간'의 날짜와 시간

today = datetime.datetime.now()
print(today)
print(type(today))
2020-04-05 17:49:12.360266
<class 'datetime.datetime'>

timedelta

두 datetime 값 사이의 기간

today = datetime.datetime.now()
pi_day = datetime.datetime(2020, 3, 14, 13, 6, 15)
print(today - pi_day)
print(type(today - pi_day))
22 days, 4:42:57.360266
<class 'datetime.timedelta'>

보시다시피 두 datetime 값을 빼면, timedelta, 날짜 간의 차이를 나타내는 타입

반대로 timedelta를 생성해서 datetime 값에 더하는 것도 가능

today = datetime.datetime.now()
my_timedelta = datetime.timedelta(days=5, hours=3, minutes=10, seconds=50)

print(today)
print(today + my_timedelta)
2020-04-05 17:54:24.221660
2020-04-10 21:05:14.221660

datetime 해부하기

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)  # 마이크로초
2020-04-05 17:59:21.709817
2020
4
5
17
59
21
709817

datetime 포맷팅

strftime을 사용하면 형태 변형 가능

today = datetime.datetime.now()

print(today)
print(today.strftime("%A, %B %dth %Y"))
2020-04-05 18:09:55.233501
Sunday, April 05th 2020

%A, %B, %d, %Y와 같은 걸 포맷 코드라고 하는데, 

포맷 코드설명예시

%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

'자동제어 > Python for robotics' 카테고리의 다른 글

평균매출구하기(파일열기 모듈, strip, split 함수)  (0) 2023.02.19
숫자맞히기 게임  (0) 2023.02.19
random 모듈  (0) 2023.02.19
palindrom test  (0) 2023.02.19
주민번호 가리기(list , str)  (0) 2023.02.19

+ Recent posts