Python datetime 모듈
python 에서 datetime 모듈은 날짜와 시간을 조작하기 위한 클래스를 제공해준다.
다음과 같이 현재 날짜를 구할 수 있다.
- 실행 코드
from datetime import datetime
datetime.now()
- 출력 결과
datetime.datetime(2024, 8, 1, 11, 30, 20, 24305 7)
결과를 보면 year, month, day, ... 의 순서로 결과가 출력되는 것을 알 수 있고 이 날짜를 원하는 형식에 맞게 출력하고 싶을 때 strftime(format)
메서드를 사용할 수 있다.
stftime 을 사용해서 출력해보기
strftime()
을 사용하면 현재 날짜를 가져와서 원하는 포맷에 맞게 변경해서 출력할 수 있다.
- 오늘 날짜 가져오기
from datetime import datetime
now_date = datetime.now()
- 출력 결과
2024-08-01 11:33:03.674754
오늘 날짜를 원하는 형식에 맞게 출력해보자.
출력하기 전에 어떻게 날짜와 시간을 지정해서 문자열로 출력할 수 있는지 알아야 하는데 아래의 문서를 통해 확인할 수 있다.
strftime() and strptime() Format Codes
그 중에서 자주 사용하는 형식 코드에 대해서만 적어봤다.
%Y
: 세기를 포함한 4자리 연도, 앞의 빈자리를 0으로 채우는 숫자 (0001, 0002, 0003, ..., 9999)%y
: 세기가 없는 연도, 앞의 빈자리를 0으로 채우는 숫자 (01, 02, 03, ..., 99)%m
: 월 출력, 앞의 빈자리에 0을 채우는 숫자 (01, 02, 03, ..., 12)%d
: 해당 월의 일, 앞의 빈자리에 0을 채우는 숫자 (01, 02, 03, ..., 31)%H
: 시간, 24시간으로 표기, 앞의 빈자리에 0을 채우는 숫자 (01, 02, 03, ..., 23)%M
: 분, 앞의 빈자리에 0을 채우는 숫자 (00, 01, ..., 59)%S
: 초, 앞의 빈자리에 0을 채우는 숫자 (00, 01, ..., 59)
이와 같은 형식 코드를 통해 날짜를 출력해주면 된다.
날짜 형식 : 일/월/연도
- 날짜 변환
now_date.strftime("%d/%m/%y")
- 출력 결과
'01/08/24'
날짜 형식 : 연도-월-일
- 날짜 변환
now_date.strftime("%Y-%m-%d")
- 출력 결과
'2024-08-01'
날짜 형식 : 연도-월-일 시:분:초
- 날짜 변환
now_date.strftime("%Y-%m-%d %H:%M:%S")
- 출력 결과
'2024-08-01 11:33:03'
앞의 빈자리 0 제거하기
strftime
을 통해 날짜를 출력하다보면 앞의 빈자리에 0을 채워준다. 하지만 채우고싶지 않다면 다음과 같이 할 수 있다.
형식 코드를 출력할 때 대시(-)
를 넣어주면 된다.
바로 위에서 들어던 예를 가져와서 출력해보자.
날짜에 앞의 빈자리 0 제거
- 날짜 변환
# now_date.strftime("%Y-%m-%d")
now_date.strftime("%Y-%-m-%-d")
- 출력 결과
# '2024-08-01'
'2024-8-1'
월과 일의 앞의 0이 제거된 것을 확인할 수 있다.
시간에 빈자리 0 제거
- 날짜 변환
# now_date.strftime("%Y-%m-%d %H:%M:%S")
now_date.strftime("%Y-%m-%d %-H:%-M:%-S")
- 출력 결과
# '2024-08-01 11:33:03'
'2024-08-01 11:33:3'
초 단위에서 앞의 0이 제거된 것을 확인할 수 있다.