더보기
▣ 주요 키워드 ▣
- 날짜 함수
- datetime 라이브러리
- time 라이브러리
- calendar 라이브러리
- dateutil 라이브러리
★ 날짜 함수
●datetime
▶ datetime라이브러리의 date클래스
▶ 날짜 함수
import datetime
# 현재 날짜
datetime.date.today()
datetime.datetime.now()
# date클래스 현재 날짜 (년, 월, 일 )
datetime.date.today().year
datetime.date.today().month
datetime.date.today().day
datetime.date.today().hour # date클래스에서는 hour, minute, second 없다
▶ datetime라이블리의 datetime클래스
# datetime클래스 현재 날짜 (년, 월, 일, 시, 분, 초, 마이크로 초)
datetime.datetime.now().year
datetime.datetime.now().month
datetime.datetime.now().day
datetime.datetime.now().hour
datetime.datetime.now().minute
datetime.datetime.now().second
datetime.datetime.now().microsecond
datetime.datetime.now().date() # 날짜만
datetime.datetime.now().time() # 시간만
datetime.datetime.now().weekday() # 요일 0:월 ~ 6:일
type(datetime.datetime.now().weekday()) # int 타입
※ 요일은 수치형으로 나오기 때문에 따로 한글로 바꾸는 작업이 필요하다.
1.
def date_trans(arg):
if arg == 0:
print('월')
elif arg == 1:
print('화')
elif arg == 2:
print('수')
elif arg == 3:
print('목')
elif arg == 4:
print('금')
elif arg == 5:
print('토')
else:
print('일')
date_trans(datetime.datetime.now().weekday())
2.
def date_trans2(arg):
day = ['월','화','수','목','금','토','일']
return day[arg]
date_trans(datetime.datetime.now().weekday())
▶ strftime
- date형식을 char형식으로 변환하는 함수(date -> char)
d = datetime.datetime.now()
d.strftime('%x') # 년/월/일
d.strftime('%X') # 시:분:초
d.strftime('%Y') # 년도(4자리)
d.strftime('%y') # 년도(뒤 2자리)
d.strftime('%m') # 달(2자리)
d.strftime('%m') + 100 # 연산작업 불가
d.strftime('%d') # 일
d.strftime('%B') # 영문자 달
d.strftime('%b') # 영문자 달(약어)
d.strftime('%H') # 시(24시간 기준)
d.strftime('%I') # 시(12시간 기준)
d.strftime('%p') # am, pm 확인
d.strftime('%I %p') # 12시간 기준일 때 am, pm 확인하기
d.strftime('%M') # 분
d.strftime('%S') # 초
d.strftime('%A') # 영문자 요일
d.strftime('%a') # 영문자 요일(약어)
d.strftime('%c') # '영문자 요일(약어) 영문자 달(약어) 일 시:분:초 년' 형식
d.strftime('%j') # 누적 날짜 (그해 1월1일부터 시작해서 그 날짜 까지)
d.strftime('%w') # 요일 0:일 ~ 6:토 str형식
d.strftime('%U') # 누적 주(일요일 시작)
d.strftime('%W') # 누적 주(월요일 시작)
▶ strptime
- char형을 date형식으로 변환하는 함수(char -> date)
# char형을 date형으로 변환
datetime.datetime.strptime('2022-04-10 21:56:30','%Y-%m-%d %H:%M:%S')
datetime.datetime(2022,4,10,21,58,30)
▶ datetime.datetime.combine(결합할 변수 1, 결합할 변수 2)
- combine함수는 연월일, 시분초처럼 따로 날짜를 구했을 때 결합시켜주는 함수
d = datetime.date(2022,3,10)
t = datetime.time(13,43,30)
datetime.datetime.combine(d,t)
datetime.datetime.combine(d,t).year
datetime.datetime.combine(d,t).strftime('%Y')
▶ 날짜 연산
datetime.date(2021,12,16) - datetime.date(2022,4,10)
datetime.date(2022,4,10) - datetime.date(2021,12,16) # 최근날짜에서 전 날짜를 빼야 -가 나오지 않음
(datetime.date(2022,4,10) - datetime.date(2021,12,16)).days # 일수만 추출
# datetime.timedelta(days=일) 함수를 이용하여 원하는 일,시,분,초,주 수를 연산작업할 수 있다.(년, 월은 안 됨)
datetime.date(2022,4,11) - datetime.timedelta(days=100)
datetime.datetime(2022,4,10,12,30,30) - datetime.timedelta(hours=5)
datetime.datetime(2022,4,10,12,30,30) - datetime.timedelta(minutes=400)
datetime.datetime(2022,4,10,12,30,30) - datetime.timedelta(seconds=10000)
datetime.datetime(2022,4,11,12,30,30) - datetime.timedelta(weeks=300)
● time 라이브러리
# time() 함수
# 1970년도 1월 1일 0시0분0초를 기준으지로 난 시간을 초단위로 리턴해주는 기능
time.time() # UTC(Universal Time Coordinated 협정 세계 표준시) 현재시간을 실수 형태로 리턴
# localtime() 함수
# 현재 년, 월, 일, 시, 분, 초, 요일, 누적 일수, 서머타임check 출력
time.localtime()
time.localtime(time.time()) #실수로 나타내는 time.time()을 인수로 받아서 현재 년, 월, 일, 시, 분, 초, 요일, 누적 일수, 서머타임check 출력
time.localtime().tm_year # 년 int형
time.localtime().tm_mon # 월
time.localtime().tm_mday # 일
time.localtime().tm_hour # 시
time.localtime().tm_min # 분
time.localtime().tm_sec # 초
time.localtime().tm_wday # 요일 0:월 ~ 6:일
time.localtime().tm_yday # 누적일수
time.localtime().tm_isdst # 서머타임일 경우 1, 아닐경우 0, 모를 때는 -1
time.gmtime() #UTC 기준으로 현재시간
time.asctime() # Mon Apr 11 00:30:30 2022 형식(요일, 월, 일 시:분:초 년도)
time.ctime() # asctime()과 동일 차이점은 ctime은 항상 현재 시간만을 리턴함
▶ time 라이브러리의 날짜, 문자, 실수 변환
#날짜 형식을 문자로 변환
time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
#문자 형식을 날짜 형식으로 변환
time.strptime('2022-4-10 10:10:10','%Y-%m-%d %H:%M:%S')
# 날짜를 실수형으로 변환
time.mktime(time.localtime())
※ 코드 실행 후 끝나는 시간 체크하는 작업
start = time.time() # 시작시간
for i in range(10):
print(i)
time.sleep(1)
end = time.time() # 끝나는 시간
print(end-start) # 작업 시간 = 끝나는 시간에서 - 시작 시간
print(end, start)
● calendar 라이브러리
- 달력 함수
- calendar.calendar(년도), calendar.prcal(년도) : 달력 출력
import calendar
print(calendar.calendar(2022)) # 2022년 달력 출력
calendar.prcal(2022) # 달력 출력
- calendar.prmonth(년도, 월) : 월 달력 출력, calendar.weekday(년, 월, 일) : 요일 출력
calendar.prmonth(2022,3) # 2022년 3월 달력 출력(월 달력 출력)
calendar.weekday(2022,3,10) # 요일 출력 0:월 ~ 6:일
- 요일 출력 3가지 방법(calendar, time, datetime)
# calendar
'월화수목금토일'[calendar.weekday(2022,4,15)] + '요일' # 인덱스로 한글 요일 출력
# time
'월화수목금토일'[time.localtime().tm_wday] + '요일' # 인덱스로 한글 요일 출력
# datetime
'월화수목금토일'[datetime.datetime.now().weekday()] + '요일' # 인덱스로 한글 요일 출력
● dateutil
- 날짜 다룰 때 유용한 라이브러리
- dateutil.relativedelta.relativedelta(years=년수, month=개월 수)
# 날짜에 년, 개월 더하기
datetime.date(2022,4,15) + dateutil.relativedelta.relativedelta(years=1,months=1)
# 날짜에 일 더하기
datetime.date(2022,4,15) + datetime.timedelta(days=365)
datetime.date(2022,4,15) + dateutil.relativedelta.relativedelta(days=365)
# 주, 일, 시, 분, 초 더하기
datetime.datetime(2022,4,15,17,20,30) + dateutil.relativedelta.relativedelta(weeks=2, days=10,hours=5,minutes=30,seconds=31)
'PYTHON' 카테고리의 다른 글
파이썬 파일 읽고 쓰기(open, close, write, read, with, csv, pickle) (0) | 2022.04.15 |
---|---|
파이썬 합, 평균, 분산, 표준편차, Feature Scailing(표준화, 정규화) (0) | 2022.04.09 |
파이썬(스택,pop,enumerate,큐) (0) | 2022.04.02 |
파이썬(operator.itemgetter,리스트 내장객체, 함수) (0) | 2022.04.02 |
파이썬(반복문,collections) (0) | 2022.03.27 |