Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python datetime.now()로 분·초·밀리초 구하는 방법 (strftime 활용)

Python에서 현재 시간의 분, 초, 밀리초를 확인하려면 datetime.now()strftime() 함수를 함께 사용하는 것이 가장 간단한 방법입니다. strftime()은 포맷 문자열을 인자로 받아 원하는 형식의 날짜·시간 문자열을 반환해 줍니다.

strftime() 주요 포맷 지시자

아래 표는 strftime()에서 사용할 수 있는 주요 지시자와 그 의미를 정리한 것입니다.

지시자의미
%a로케일(locale)의 요일 이름 축약형 (예: Mon)
%A로케일의 요일 전체 이름 (예: Monday)
%b로케일의 월 이름 축약형 (예: Jan)
%B로케일의 월 전체 이름 (예: January)
%c로케일에 맞는 날짜 및 시간 표현
%d일(day)을 10진수로 표현 [01~31]
%f마이크로초를 10진수로 표현 [000000~999999]
%H시간(24시간제)을 10진수로 표현 [00~23]
%I시간(12시간제)을 10진수로 표현 [01~12]
%j연중 몇 번째 날인지 10진수로 표현 [001~366]
%m월을 10진수로 표현 [01~12]
%M분을 10진수로 표현 [00~59]
%p로케일에 따른 AM/PM 표현
%S초를 10진수로 표현 [00~61]
%U연중 몇 번째 주인지 표현(일요일을 한 주의 시작으로 간주) [00~53]. 새해 첫 일요일 이전의 날은 0주로 계산됩니다.
%w요일을 10진수로 표현 [0(일요일)~6]
%W연중 몇 번째 주인지 표현(월요일을 한 주의 시작으로 간주) [00~53]. 새해 첫 월요일 이전의 날은 0주로 계산됩니다.
%x로케일에 맞는 날짜 표현
%X로케일에 맞는 시간 표현
%y세기를 제외한 연도를 10진수로 표현 [00~99]
%Y세기를 포함한 연도를 10진수로 표현
%Z시간대(time zone) 이름 (시간대가 없으면 빈 문자열)
%%'%' 문자 자체

사용 예제

분, 초, 밀리초를 '분:초.마이크로초' 형식으로 출력하려면 지시자를 아래와 같이 조합하면 됩니다.

from datetime import datetime

curr_time = datetime.now()
formatted_time = curr_time.strftime('%M:%S.%f')
print(formatted_time)

실행 결과

31:15.093393

여기서 %M은 분, %S는 초, %f는 마이크로초(소수점 이하 6자리 숫자)를 의미합니다.

밀리초만 추출하는 방법

%f는 6자리 마이크로초를 반환하므로, 밀리초 단위(3자리)만 필요하다면 슬라이싱으로 앞 세 자리만 가져오면 됩니다.

from datetime import datetime

curr_time = datetime.now()

# 밀리초(앞 3자리)만 추출
milliseconds = curr_time.strftime('%f')[:3]
print(curr_time.minute, '분', curr_time.second, '초', milliseconds, '밀리초')

또는 curr_time.microsecond // 1000처럼 정수 나눗셈을 이용해 밀리초 값을 직접 구할 수도 있습니다.