인공지능/파이썬

파이썬(Python) - 날짜 / 달력 관련 라이브러리

해피밀세트 2020. 2. 25. 20:33
반응형

 

날짜

 

1. import datetime     

datetime라이브러리가 제공하는 클래스

1) date : 날짜만 저장

2) datetime : 날짜와 시간을 함께 저장

3) time, timedelta 등등...

 

1) datetime.date 

: 현재 OS 기준 날짜 출력

 

import datetime     # datetime 라이브러리 호출

datetime.date.today()  년, 월, 일 datetime.date(2020, 2, 25)
datetime.date.today().year 2020
datetime.date.today().month 2
datetime.date.today().day 25

 

2) datetime.datetime.now()

: 현재 날짜, 시간 출력

datetime.datetime.now()  년, 월, 일, 시, 분, 초, 마이크로 초 datetime.datetime(2020, 2, 25, 19, 44, 51, 477829)
datetime.datetime.now().year 2020
datetime.datetime.now().month 2
datetime.datetime.now().day 25
datetime.datetime.now().hour 19
datetime.datetime.now().minute 54
datetime.datetime.now().second 8
datetime.datetime.now().microsecond 마이크로 초 375291
datetime.datetime.now().date() 년, 월, 일 ( = datetime.date.today()) datetime.date(2020, 2, 25)
datetime.datetime.now().time() 시, 분, 초, 마이크로 초 datetime.time(19, 55, 33, 199880)
datetime.datetime.now().weekday() 요일(0:월 ~ 6:일) 1

 

 

 

2. 날짜 타입의 형변환

1) 날짜 -> 문자

datetime.datetime.now().strftime()

: 날짜를 문자로 변환

 

d = datetime.datetime.now()  #변수에 시간 저장 / 변수에 저장한 시점으로 시간이 맞춰진다.
 

d.strftime('%x') 월/일/년 '02/25/20'
d.strftime('%X') 시:분:초 '20:09:32'
d.strftime('%Y') 년도 4자리 '2020'
d.strftime('%m') 월 2자리 '02'
d.strftime('%d') '25'
d.strftime('%B') 월 이름 (영문) 'February'
d.strftime('%H') 시 (24시간 기준) '20'
d.strftime('%I') 시 (12시간 기준) '08'
d.strftime('%M') '09'
d.strftime('%S') '32'
d.strftime('%f') 마이크로 초 '514801'
d.strftime('%Y-%m-%d %H:%M:%S.%f') 년-월-일 시:분:초.마이크로 초 '2020-02-25 20:09:32.514801'
d.strftime('%A') 요일 'Tuesday'
d.strftime('%a') 요일 약자 'Tue'
d.strftime('%c') 날짜 시간 'Tue Feb 25 20:09:32 2020'
d.strftime('%p') AM / PM 'PM'
d.strftime('%j') 누적 날짜 '056'
d.strftime('%U') 누적 주 (일요일 시작) '08'
d.strftime('%W') 누적 주 (월요일 시작) '08'
d.strftime('%w') 요일 (0: ~ 6:) '2'
d.strftime('%F') 년-월-일 '2020-02-25'

 

2) 문자 -> 날짜

datetime.datetime.strptime()

: 문자를 날짜로 변환

 

 

datetime.datetime.strptime('2020-02-25 13:42:00','%Y-%m-%d %H:%M:%S')

: 년, 월, 일, 시, 분 (초는 0이므로 출력X)

datetime.datetime(2020, 2, 25, 13, 42)

 

 

3. 날짜 계산

d = datetime.date(2020,2,25) 
t = datetime.time(13,45,2,123456)
datetime.datetime.combine(d,t)

d = 날짜 저장
t = 시간 저장
combine(d,t) = 날짜와 시간 붙이기

datetime.datetime(2020, 2, 25, 13, 45, 2, 123456)
datetime.datetime(2020,2,25) 년, 월, 일, 시, 분 datetime.datetime(2020, 2, 25, 0, 0)
datetime.datetime(2020,2,25) 
- datetime.datetime(2020,1,16)

날짜 - 날짜 = 일수
days = 일수

datetime.timedelta(days=40)
(datetime.datetime(2020,2,25) 
- datetime.datetime(2020,1,16)).days
날짜 - 날짜
일수만 출력
40
datetime.datetime(2020,2,25) 
+ datetime.timedelta(days=93)
날짜 + 일수
= 일수만큼 더해진 날짜
datetime.datetime(2020, 5, 28, 0, 0)
datetime.datetime(2020,2,25) 
+ datetime.timedelta(hours = 1)
날짜 + 시간 (시)
= 날짜와 더해진 시간
datetime.datetime(2020, 2, 25, 1, 0)
datetime.datetime(2020,2,25) 
+ datetime.timedelta(minutes = 60)
날짜 + 시간 (분)
= 날짜와 더해진 시간
datetime.datetime(2020, 2, 25, 1, 0)
datetime.datetime(2020,2,25) 
+ datetime.timedelta(seconds = 3600)
날짜 + 시간 (초)
= 날짜와 더해진 시간
datetime.datetime(2020, 2, 25, 1, 0)

 


 

달력

 

1. import calendar

 

claendar 라이브러리 호출 :

import calendar

 

2020년 달력보기 :

calendar.calendar(2020)

 

다듬어진 2020년 달력보기 :

print(calendar.calendar(2020))      # 안에 포맷문자가 있어서 깔끔하게 출려된다.

calendar.prcal(2020)                  # print문 안쓰고 깔끔하게 출력하기

 

년, 월 지정해서 달력 출력 :

calendar.prmonth(2020,2)

 

입력한 년, 월, 일의 요일(0:월 ~ 6:일) 출력 :

calendar.weekday(2020,2,25)

 

입력한 년, 월의 1일의 요일, 마지막 일 출력 :

calendar.monthrange(2020,2)

 

요일(한글)로 나타내기 :

'월화수목금토일'[calendar.weekday(2020,2,25)]

 

 

2. import dateutil

 

dateutil 라이브러리 호출 :

import dateutil

 

년, 월, 일, 시, 분 출력하기 :

dateutil.parser.parse('2020-02-25')

 

현재날짜 + 월 수 :

datetime.date.today() + dateutil.relativedelta.relativedelta(months=3)

 

현재날짜 - 월 수 :

datetime.date.today() - dateutil.relativedelta.relativedelta(months=3)
datetime.date.today() + dateutil.relativedelta.relativedelta(months=-3)

 

현재날짜 + 년 수 :

datetime.date.today() + dateutil.relativedelta.relativedelta(years = 10)

 

 

모듈명 줄여서 쓰기

from datetime import date
from dateutil.relativedelta import relativedelta

 

date.today() + relativedelta(years = 10) 현재 날짜
+ 입력한 년 수
datetime.date(2030, 2, 26)
date.today() + relativedelta(years = 10,
months = 3)
현재 날짜
+ 입력한 년 수, 월 수
datetime.date(2030, 5, 26)
date.today() + relativedelta(days=7, 
hours=10, minutes=30, seconds = 50)
현재 날짜
+ 입력한 일 수, 시간, 분, 초
datetime.datetime(2020, 3, 4, 10, 30, 50)
date.today() + relativedelta(weeks = 1,
days = 1)
현재 날짜
+ 입력한 주 수, 일 수
datetime.date(2020, 3, 5)
date.today() + relativedelta(weekday 
= calendar.FRIDAY)
현재 날짜를 기준으로 입력한 요일이 가장 날짜 / 요일은 영문 대문자 datetime.date(2020, 2, 28)

 

반응형