728x90
▼Datetime 메서드 개념 정리
더보기
1. timedelta
from datetime import timedelta # datetme 모듈의 timedelta 클래스
# 1. argument로 주,일,시,분,초,밀리초,마이크로초 입력받음
# 또한 timedelta는 일,초,마이크로초의 형태로만 데이터 저장
timedelta(days=5, hours=17, minutes=30)
----------------------------------------------------------
datetime.timedelta(days=5, seconds=63000)
# 2. 시간 계산 가능
from datetime import date
today = date.today() # 오늘날짜
one_week = timedelta(weeks=1)
next_week = today + one_week
next_week
-----------------------------------------
today = datetime.date(2023, 7, 18)
one_week = datetime.timedelta(days=7)
next_week = datetime.date(2023, 7, 25)
# 3. 시간에 연산 가능
two_weeks = one_week * 2 # 숫자 연산 가능
two_weeks == timedelta(days=14) # True
----------------------------------------
datetime.timedelta(days=14)
2. timezone
from datetime import timezone
#1. korea의 시간 구하기 위해 utc 시간에 +9시간
timezone(timedelta(hours=9))
-----------------------------------------------------
datetime.timezone(datetime.timedelta(seconds=32400))
#2. utc 시간 구하기
timezone(timedelta(0))
timezone.utc # timezone.utc해서 바로 utc 시간 구할 수 있음
----------------------------------------------------------
datetime.timezone.utc
3. date
from datetime import date
# date
# 1. argument로 날짜 입력받음
# ex) 2023(연도), 7(월), 18(일)
date( 2023, 7, 18 )
# 2. today() 사용 가능 ( 날짜까지만 생성 )
date.today()
# 3. isoformat() 사용하여 'YYYY-MM-DD' 의 문자열 형태로 변경 가능
date.today().isoformat()
# 4. fromisoformat() 사용하면 기존의 date 형태로 변경 가능
date.fromisoformat('2023-07-18')
# 5. year, month, day 사용 가능
date.today().year
# 6. weekday, isoweekday 메서드 (요일을 숫자로 반환)
date.today().weekday() # 월요일이 0
date.today().isoweekday() # 월요일이 1
4. time
from datetime import time
# 1. argument로 시간 입력받음
# ex) 13(시간), 45(분), 20(초)
time(13, 45, 20)
------------------------------
datetime.time(13, 45, 20)
# 2. isoformat() 사용하여 'hh : mm : ss' 의 문자열 형태로 변경 가능
time(13, 45, 20).isoformat()
------------------------------------------------------------------
'13:45:20'
# 3. fromisoformat() 사용하여 문자열 형태에서 datetime형태로 변경 가능
time.fromisoformat('13:45:20')
-----------------------------------------------------------------------
# datetime.time(13, 45, 20)
# 4. hour, minute, second, microsecond, 사용 가능
time(13, 45, 20).hour
-------------------------------------------------
13
5. datetime
from datetime import datetime
# 1. argument로 연,월,일, 시, 분, 초 입력받음
datetime( 2023, 7, 18, 13, 45, 20 )
# 2. date클래스와 time클래스의 argument 결합 가능
# datetime에 입력하다보면 인자가 너무 많아 헷갈릴 가능성 있음
# 그런 경우에 각각 입력하여 결합 기능 사용
d = date(2023, 7, 18)
t = time(13, 45, 20)
datetime.combine(d,t)
-------------------------------------------------------------
datetime.datetime(2023, 7, 18, 13, 45, 20)
# 3. now() 메서드로 현재 날짜 및 시간 출력 가능
datetime.now()
-----------------------------------------------
datetime.datetime(2023, 7, 18, 9, 34, 55, 342438)
# 4. strftime으로 날짜 형태에서 원하는 str 형태(format)로 변경 가능
datetime.today().strftime('%Y/%m/%d')
-------------------------------------------------------------------
'2023/07/18'
# 5. strptime으로 str 형태에서 날짜 형태로 변경 가능
datetime.strptime('2020/07/18', '%Y/%m/%d')
----------------------------------------------------
datetime.datetime(2020, 7, 18, 0, 0)
# 문자열에 날짜 데이터만 있고 시간 데이터는 없기 때문에 모두 0으로 처리
# strftime은 date,time 클래스에서도 지원
# strptime은 datetime 클래스에서만 지원
참고링크 : datetime 모듈로 날짜/시간 처리하기 | 달레의 파이썬 - YouTube
📚문제
📝풀이
# 10699번 오늘 날짜
from datetime import date
date.today().strftime('%Y-%m-%d')
날짜와 시간에 관한 문제다
시간함수에 대해서 아직 익숙하지 않아서
문제를 풀기 전에
datetime 모듈 내의 date, time, datetime 등의 클래스에 대한 내용과 개념을 정리하고 풀이하였다.
728x90
'Python(알고리즘,문제풀이) > BOJ (Bronze V)' 카테고리의 다른 글
11718번 / 그대로 출력하기 (0) | 2023.07.19 |
---|---|
10757번 / 큰 수 A+B (0) | 2023.07.18 |
2475번 / 검증수 (0) | 2023.07.11 |
2372번 / Livestock Count (0) | 2023.07.11 |
1809번 / Moo (0) | 2023.07.10 |