산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

Python strftime() 마스터하기: 날짜와 시간을 읽기 쉬운 문자열로 변환

Python strftime()

이 글에서는 예제와 함께 날짜, 시간, datetime 객체를 해당하는 문자열로 변환하는 방법을 배웁니다.

동영상: Python에서 날짜와 시간 다루기

strftime() 메서드는 날짜, 시간 또는 datetime 객체를 사용하여 날짜와 시간을 나타내는 문자열을 반환합니다.


예제 1: strftime()을 사용하여 datetime을 문자열로 변환

아래 프로그램은 현재 날짜와 시간을 포함하는 datetime 객체를 다양한 문자열 형식으로 변환합니다.

from datetime import datetime
now = datetime.now()  # 현재 날짜와 시간
year = now.strftime("%Y")
print("년도:", year)
month = now.strftime("%m")
print("월:", month)
day = now.strftime("%d")
print("일:", day)
time = now.strftime("%H:%M:%S")
print("시간:", time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("날짜와 시간:", date_time)

프로그램을 실행하면 출력은 다음과 유사합니다:

년도: 2018
월: 12
일: 24
시간: 04:59:31
날짜와 시간: 12/24/2018, 04:59:31

여기서 year, day, time, date_time은 문자열인 반면, now는 datetime 객체입니다.


strftime() 작동 원리

위 프로그램에서 %Y, %m, %d 등은 형식 코드입니다. strftime() 메서드는 하나 이상의 형식 코드를 인수로 받아 이를 기반으로 포맷된 문자열을 반환합니다.

  1. datetime 모듈에서 datetime 클래스를 임포트했습니다. datetime 클래스의 객체가 strftime() 메서드에 접근할 수 있기 때문입니다.
  2. 현재 날짜와 시간을 포함하는 datetime 객체가 now 변수에 저장됩니다.
  3. strftime() 메서드를 사용하여 포맷된 문자열을 생성할 수 있습니다.
  4. strftime() 메서드에 전달하는 문자열에는 하나 이상의 형식 코드가 포함될 수 있습니다.

예제 2: 타임스탬프에서 문자열 생성

from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
print("날짜 시간 객체:", date_time)
d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
print("출력 2:", d)
d = date_time.strftime("%d %b, %Y")
print("출력 3:", d)
d = date_time.strftime("%d %B, %Y")
print("출력 4:", d)
d = date_time.strftime("%I%p")
print("출력 5:", d)

프로그램을 실행하면 출력은 다음과 같습니다:

날짜 시간 객체: 2018-06-12 09:55:22
출력 2: 06/12/2018, 09:55:22
출력 3: 12 Jun, 2018
출력 4: 12 June, 2018
출력 5: 09AM

형식 코드 목록

아래 표는 strftime() 메서드에 전달할 수 있는 모든 코드를 보여줍니다.

지시자의미예시
%a줄임 요일 이름Sun, Mon, ...
%A전체 요일 이름Sunday, Monday, ...
%w요일(십진수, 0=일요일)0, 1, ..., 6
%d월별 일(제로 패딩)01, 02, ..., 31
%-d월별 일(패딩 없음)1, 2, ..., 30
%b줄임 월 이름Jan, Feb, ..., Dec
%B전체 월 이름January, February, ...
%m월(제로 패딩)01, 02, ..., 12
%-m월(패딩 없음)1, 2, ..., 12
%y세기 없는 연도(제로 패딩)00, 01, ..., 99
%-y세기 없는 연도(패딩 없음)0, 1, ..., 99
%Y세기 포함 연도2013, 2019 등
%H시간(24시간제, 제로 패딩)00, 01, ..., 23
%-H시간(24시간제, 패딩 없음)0, 1, ..., 23
%I시간(12시간제, 제로 패딩)01, 02, ..., 12
%-I시간(12시간제, 패딩 없음)1, 2, ... 12
%p로케일의 AM/PMAM, PM
%M분(제로 패딩)00, 01, ..., 59
%-M분(패딩 없음)0, 1, ..., 59
%S초(제로 패딩)00, 01, ..., 59
%-S초(패딩 없음)0, 1, ..., 59
%f마이크로초(좌측 제로 패딩)000000 - 999999
%zUTC 오프셋(+HHMM 또는 -HHMM)
%Z시간대 이름
%j연중 일(제로 패딩)001, 002, ..., 366
%-j연중 일(패딩 없음)1, 2, ..., 366
%U주 번호(일요일 기준)00, 01, ..., 53
%W주 번호(월요일 기준)00, 01, ..., 53
%c로케일의 적절한 날짜/시간 표현Mon Sep 30 07:06:05 2013
%x로케일의 적절한 날짜 표현09/30/13
%X로케일의 적절한 시간 표현07:06:05
%%리터럴 '%' 문자%

예제 3: 로케일의 적절한 날짜와 시간

from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("출력 1:", d)
d = date_time.strftime("%x")
print("출력 2:", d)
d = date_time.strftime("%X")
print("출력 3:", d)

프로그램을 실행하면 출력은 다음과 같습니다:

출력 1: Tue Jun 12 09:55:22 2018
출력 2: 06/12/18
출력 3: 09:55:22

형식 코드 %c, %x, %X는 로케일의 적절한 날짜와 시간 표현에 사용됩니다.


또한 Python strptime()도 확인해 보시기 바랍니다. strptime() 메서드는 문자열로부터 datetime 객체를 생성합니다.

python

  1. 파이썬 키워드와 식별자: 예약어와 명명 규칙 마스터하기
  2. 파이썬 데이터 타입 마스터하기: 실전 가이드
  3. 파이썬 연산자 마스터하기: 종합 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  6. Python 이터레이터: 작동 원리와 직접 만들기
  7. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  8. Python 정규표현식(re 모듈) 실전 가이드
  9. Python datetime 마스터하기: 날짜, 시간, 타임존 실전 가이드
  10. Python time 모듈 마스터하기: 함수, 구조체, 실전 예제