반응형
파이썬에서 날짜와 시간을 다루기 위해서는 datetime 모듈을 사용한다.
예제)
import datetime
# 현재 시간 가져오기
current = datetime.datetime.now()
print(current)
# 1시간 후
one_hour_later = current + datetime.timedelta(hours=1)
print(one_hour_later)
# 1시간 전
one_hour_ago = current - datetime.timedelta(hours=1)
print(one_hour_ago)
# 내일 시간
tomorrow = current + datetime.timedelta(days=1)
print(tomorrow)
# 어제 시간
yesterday = current - datetime.timedelta(days=1)
print(yesterday)
# 10분 후
ten_minutes_later = current + datetime.timedelta(minutes=10)
print(ten_minutes_later)
# 10분 전
ten_minutes_later = current - datetime.timedelta(minutes=10)
print(ten_minutes_later)
strftime()
위의 날짜 데이터의 타입을 확인해보면 `datetime` 이라고 출력될 것이다.
이것을 문자열(str) 데이터로 사용하기 위해서는 `strftime()` 메소드를 사용하면 된다.
메소드 내의 인자에는 원하는 포멧을 넣어주면 된다.
문자열 형식
- %Y : 4자리 수 년(year)
- %y : 2자리 수 년(year)
- %m : 2자리 수 월(month, 1~9월의 경우, 앞에 0을 채운다)
- %d : 2자리 수 일(date, 1~9일의 경우, 앞에 0을 채운다)
- %H : 2자리 수 시간 (24-hour clock, 0~9시의 경우, 앞에 0을 채운다)
- %M : 2자리 수 분 (0~9분의 경우, 앞에 0을 채운다)
- %S : 2자리 수 초 (0~9초의 경우, 앞에 0을 채운다)
예제)
current.strftime('%Y-%m-%d %H:%M:%S')
# 2023-10-01 00:00:00
strptime()
그렇다면 문자열의 날짜를 다시 datetime으로 변환하려면 strptime() 메소드를 사용하면된다.
첫번째 인자에는 문자열(str) 타입의 날짜를 넣고, 두번째 인자에는 해당 문자열과 매칭되는 포멧을 넣어준다.
만약 일치하지 않는다면 `ValueError: time data '2023-10-01 00:00:00' does not match format ...` 과 같은 에러가 발생할 것이다.
예제)
str_time = current.strftime('%Y-%m-%d %H:%M:%S')
print(type(str_time)) # str
date_time = datetime.datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
print(type(date_time)) # datetime
응용 문제(날짜 출력, 더하기, 빼기)
문제: UTC 현재 시간으로 부터 30분 후를 계산하여 포멧에 맞게 출력
포멧 예시: 2023-10-10 00:00:00
코드)
import datetime
calc_time = (datetime.datetime.utcnow() + datetime.timedelta(minutes=30)).strftime("%Y-%m-%d %H:%M:%S")
print(calc_time)
문제: 현재 날짜에서 3일 후를 계산하여 포멧에 맞게 출력
포멧 예시: 2023-10-10 00:00:00
코드)
import datetime
now = datetime.datetime.now()
calc_time = (now + datetime.timedelta(days=3)).strftime("%Y-%m-%d %H:%M:%S")
print(calc_time)
반응형
'Python' 카테고리의 다른 글
파이썬 매크로, 자동화 스크립트 작성법 (pyautogui) (0) | 2023.11.07 |
---|---|
Python mp3 파일 재생 소리 재생 playsound (0) | 2023.07.23 |
댓글