-
[datetime] 시간포맷: datetime.strftime("%Y-%m-%d")Python 2020. 12. 18. 21:43
strftime으로 현재 시간 등을 출력할 때, 자주 안 쓰는 포맷코드는 기억하기가 쉽지 않다.
제목인 datetime.strftime("%Y-%m-%d")는 "2020-12-18"처럼 4자리 연도-2자리 월-2자리 일 형태다.
혹시 또 필요할 수 있으니, 자주 쓸 법한 것들은 정리해두고자 한다.
공식문서에서
strftime() and strptime() Format Codes(strftime()과 strptime() 포맷 코드)
로 검색하면 전체 테이블을 확인할 수 있다.
Directive Meaning Example %a 짧은 요일이름 Sun, Mon, …, Sat.. %A 전체 요일이름 Sunday, Monday, …, Saturday %w 숫자로 표현한 요일, 0이 일요일, 6이 토요일임 0, 1, …, 6 %d 연월일시의 '일'자. 0 패딩 들어감 01, 02, 03, ..., 31 %b 짧은 월 이름 Jan, Feb, ... %B 전체 월 이름 January, February, …, December %m 연월일시의 '월', 0 패딩 들어감 01, 02, ..., 12 %y 연도 뒤의 2자리 (2021년의 경우 21) 00, 01, ..., 99 %Y 연도 4자리, 0 패딩 들어감 0001, 0002, ..., 2013, 2014, ..., 9999 %H 24시간제의 시간, 0 패딩 들어감, 24가 없고 00이 있음 00, 01, 02, ..., 23 %p AM or PM AM, PM %M 시간: 분: 초의 분, 0 패딩 들어감 00, 01, ..., 59 %S 시간: 분: 초의 초, 0 패딩 들어감 00, 01, ..., 59 %j 1년 중 몇 번째 '일'인지, 0 패딩 들어감 001, 002, ..., 366 %U 1년 중 몇 번째 '주'인지(일요일 시작 기준), 0 패딩 들어감 00, 01, ..., 53 %W 1년 중 몇 번째 '주'인지(월요일 시작 기준), 0 패딩 들어감 00, 01, ..., 53 숫자가 아닌 요일이나 월이름, AM/PM 같은 경우, locale 설정에 따라 출력값이 다르다고 한다.
자주 쓸 것 같은 조합
import time import datetime now = datetime.datetime.now() finalDay = datetime.datetime(2020, 12, 31) timedelta = finalDay - now print("오늘 날짜: " + now.strftime("%Y-%m-%d")) # 오늘 날짜: 2020-12-18 print("현재 시각: " + now.strftime("%H:%M:%S %p")) # 현재 시각: 12:41:10 PM print("오늘은 " + now.strftime("%Y년도의 " + "%j" + "번째 날입니다.")) # 오늘은 2020년도의 353번째 날입니다. print("이번주는 " + now.strftime("%Y년도의 " + "%W" + "번째 주입니다.")) # 이번주는 2020년도의 50번째 주입니다. print("올해 마지막 날까지 " + str(timedelta.days) + "일 남았습니다.") # 올해 마지막 날까지 12일 남았습니다. print("올해 마지막 날까지 총 " + str(timedelta.total_seconds()) + "초 남았습니다.") # 올해 마지막 날까지 총 1077529.023712초 남았습니다.
현재 시간을 epoch time으로 표현하고 싶다면
import datetime a = datetime.datetime.now() # datetime.datetime(2020, 12, 21, 13, 20, 49, 928330) b = datetime.datetime(1970,1,1) # datetime.datetime(1970, 1, 1, 0, 0) c = a-b # datetime.timedelta(days=18617, seconds=48049, microseconds=928330) c.total_seconds() # 1608556849.92833
우분투에서는 아래처럼 하면 된다.
# date +%s // 1608524666
'Python' 카테고리의 다른 글
[인코딩] 유니코드 인코딩 처리 (특히 json 입출력 시) (1) 2020.12.28 [pip] pip search error: xmlrpc.client.Fault: <Fault -32500: 'RuntimeError> (0) 2020.12.17 [import] 폴더 안의 스크립트 임포트하기 (0) 2020.12.16 [Python] right shift와 powerSet (0) 2020.05.17