Python/Python__works

datetime 활용하기

말하는감자 2020. 9. 24. 14:47

python에는 datetime이라는 훌륭한 라이브러리가 있습니다.

datetime은 날짜와 시간을 조작하는 클래스를 제공합니다. 오늘은 strftime에 대해서만 공부해보려고 합니다.


  • 현재 날짜와 시간을 알아낼때는 아래와 같이 이용합니다.

from datetime import datetime

all = datetime.now()
# 2020-09-24 14:44:44

하지만 업무를 하다 보면 년도, 월, 일 혹은 시간만 뽑아내서 사용하는 경우가 훨씬 많습니다.

그럴때는 strftime을 이용하면 편리하게 이용할 수 있습니다.

 

strftime은 포매터를 이용하여 원하는 내용을 출력하게 만들 수 있습니다.

strftime과 strptime의 차이점을 간략하게 정리해보았습니다.

  • strftime

    • 객체를 문자열로 리턴

    • 인스턴스 메서드

    • strftime(format)

    • 현재의 날짜와 시간을 문자열로 출력

  • strptime

    • 주어진 포맷으로 문자열을 datetime 객체로 분석

    • 클래스 메서드

    • strptime(date_string, format)

    • 날짜, 시간 형식의 문자열을 datetime으로 변환해서 출력

from datetime import datetime

ex_time_string = '2020-10-01'
datetime.strptime(ex_time_string, '%Y-%m-%d')

 


  • %a를 사용하면 그 주의 요일을 앞의 3글자만 축약된 형태로 출력됩니다.

  • %A를 사용하면 그 주의 요일의 전체 이름을 출력합니다.

  • %w를 이용하면 요일을 십진수로 출력합니다.

    • 요일별 서비스 제공을 개발할때 잘 사용했던 기억이 있네요.

datetime.now().strftime("%a")
# Sun, Mon ..... Fri

datetime.now().strftime("%A")
# Sunday, Monday ... Friday

datetime.now().strftime("%w")
# 0, 1 ...

 

 

 

  • %d를 이용하면 day를 출력합니다. 이때 1~9일은 01 ~ 09 형식으로 출력됩니다.

datetime.now().strftime("%d")
# 01, 02 ...

 

 

  • %m을 사용하면 Month를 출력합니다. 이때 1~9월은 01~09 형식으로 출력됩니다.

  • %b를 사용하면 Month의 영문 이름을 축약된 형태로 출력합니다.

  • %B를 사용하면 Month의 영문 이름을 모두 출력합니다.

datetime.now().strftime("%m")
# 01, 02 ...

datetime.now().strftime("%b")
# Sep

datetime.now().strftime("%B")
# September

 

 

  • %y를 이용하면 년도의 뒷자리만 출력합니다 (ex : 2020년은 20)

  • %Y를 이용하면 전체 년도를 출력합니다.

datetime.now().strftime("%y")
# 01, 02 ...

datetime.now().strftime("%Y")
# 2020, 2021 ...

 

 

  • %H를 이용하면 현재 시간을 24시간제로 출력합니다

  • %I를 이용하면 현재 시간을 12시간제로 출력합니다.

datetime.now().strftime("%H")
# 21, 23, 0

datetime.now().strftime("%I")
# 1 ... 12

 

 

  • %M을 이용하면 분을 출력합니다. 이때 1~9분은 01 ~ 09 형식으로 출력됩니다.

datetime.now().strftime("%M")
# 01 .. 59

 

 

  • %S를 이용하면 초를 출력합니다. 이때 1~9분은 01 ~ 09 형식으로 출력됩니다.

datetime.now().strftime("%S")
# 01 .. 59

 

 

  • %j는 연중일을 출력합니다.

    • 예를들어서 1월 21일 이라면 21을 리턴해주고, 2월1일이라면 32를 리턴해주는 식입니다.

  • %U는 연중 주 번호를 일요일 기준으로 출력합니다.

  • %W는 연중 주 번호를 월요일 기준으로 출력합니다.

# 연중일
datetime.now().strftime("%j")

# 연중주 - 시작일(일요일)
datetime.now().strftime("%U")

# 연중주 - 시작일(월요일)
datetime.now().strftime("%W")

'Python > Python__works' 카테고리의 다른 글

mysqlclient  (0) 2020.09.28
서버의 로그를 파이썬으로 읽어서 slack으로 전달하기  (0) 2020.09.24
실행 중인 메서드이름, 파일 이름  (0) 2020.09.24
fetchone() 분실 사건  (0) 2020.09.22
python slacker  (0) 2020.06.11