<출처> https://www.ibm.com/docs/ko/i/7.3?topic=functions-strftime-convert-datetime-string
날짜 시간 포맷, strftime 함수
설명
strftime() 함수는 format 으로 가리키는 스트링에서 제어하는 대로, s로 가리키는 배열에 바이트를 배치합니다. 형식 스트링은 0개 이상의 변환 스펙 및 보통 문자로 구성됩니다. 변환 스펙은 변환 작동을 판별하는 종료 변환 문자 및 % 문자로 구성됩니다. 종료 널 바이트 및 멀티바이트 문자를 포함하여 모든 보통 문자는 배열로 변경되지 않고 복사됩니다. 겹치는 오브젝트 사이에서 복사가 수행되면 작동은 정의되지 않습니다. maxsize 이하의 바이트가 배열에 배치됩니다. 적절한 문자는 timeptr 및 현재 로케일에 저장된 값으로 가리키는 구조에 포함된 값으로 판별됩니다.
각 표준 변환 스펙은 다음 표에서 설명한 대로 적절한 문자로 대체됩니다.
%a | 축약된 요일명. |
%A | 전체 요일명. |
%b | 축약된 월명. |
%B | 전체 월명. |
%c | 로케일 형식의 날짜/시간. |
%C | 세기 수[00-99]로 연도는 100으로 나누고 정수로 자릅니다. |
%d | 월의 일[01-31]. |
%D | 날짜 형식(%m/%d/%y와 동일). |
%e | 한 자릿수가 공백으로 선행된다는 점을 제외하고 %d와 동일합니다[1-31]. |
%g | ISO 주 날짜의 두 자리 연도 부분[00,99]. |
%F | ISO 날짜 형식(%Y-%m-%d와 동일). |
%G | ISO 주 날짜의 네 자리 연도 부분. 음수일 수 있습니다. |
%h | %b와 동일합니다. |
%H | 24시간 형식의 시간[00-23]. |
%I | 12시간 형식의 시간[01-12]. |
%j | 연도의 일[001-366]. |
%m | 월[01-12]. |
%M | 분[00-59]. |
%n | 줄 바꾸기 문자. |
%p | AM 또는 PM 스트링. |
%r | 로케일의 AM/PM 형식 시간. 로케일 시간 형식을 사용할 수 없는 경우 디폴트는 POSIX 시간 AM/PM 형식입니다(%I:%M:%S %p). |
%R | 초가 없는 24시간 형식(%H:%M과 동일). |
%S | 초[00-61]. 초의 범위는 윤초 및 이중 윤초를 허용합니다. |
%t | 탭 문자. |
%T | 초가 있는 24시간 형식(%H:%M:%S와 동일). |
%u | 요일[1,7]. 월요일은 1이고 일요일이 7입니다. |
%U | 연도의 주 번호[00-53]. 일요일은 첫 번째 요일입니다. |
%V | 연도의 ISO 주 번호[01-53]. 월요일은 첫 번째 요일입니다. 새 연도에 1월 1일을 포함하는 주가 4일 이상을 포함하면 주 1로 간주됩니다. 그렇지 않으면 작년의 마지막 주이고, 다음 연도는 새 연도의 주 1입니다. |
%w | 요일[0,6]. 일요일은 0입니다. |
%W | 연도의 주 번호[00-53]. 월요일은 첫 번째 요일입니다. |
%x | 로케일 형식의 날짜. |
%X | 로케일 형식의 시간. |
%y | 두 자리 연도[00,99]. |
%Y | 4자리 연도. 음수일 수 있습니다. |
%z | UTC 오프셋. 출력은 형식 +HHMM 또는 -HHMM의 스트링입니다. 여기서 +는 GMT 동쪽, -는 GMT 서쪽을 의미합니다. HH는 GMT에서 시간 수를 나타내고 MM은 GMT에서의 분 수를 나타냅니다. |
%Z | 시간대명. |
%% | % 문자. |
수정된 변환 지정자
일부 변환 지정자는 대체 형식 또는 스펙을 사용해야 함을 표시하도록 E 또는 0 수정자 문자로 수정할 수 있습니다. 또는 수정되지 않은 변환 지정자가 정상적으로 사용하는 항목 대신 스펙을 사용해야 합니다. 수정된 변환 지정자가 사용할 수 없는 현재 로케일의 필드를 사용하는 경우 작동은 수정하지 않은 변환 스펙을 사용한 경우와 같습니다. 예를 들어, era 스트링이 빈 스트링 ""인 경우(즉, 스트링을 사용할 수 없음) %EY는 %Y와 같이 작동합니다.
%Ec | 현재 시대의 날짜/시간. |
%EC | 시대명. |
%Ex | 현재 시대의 날짜. |
%EX | 현재 시대의 시간. |
%Ey | 시대의 연도. 기본 연도로부터의 오프셋입니다. |
%EY | 현재 시대의 연도. |
%Od | 대체 자릿수를 사용하는 월의 일. |
%Oe | %Od와 동일합니다. |
%OH | 대체 자릿수를 사용하는 24시간 형식의 시간. |
%OI | 대체 자릿수를 사용하는 12시간 형식의 시간. |
%Om | 대체 자릿수를 사용하는 월. |
%OM | 대체 자릿수를 사용하는 분. |
%OS | 대체 자릿수를 사용하는 초. |
%Ou | 대체 자릿수를 사용하는 요일. 월요일은 1이고 일요일이 7입니다. |
%OU | 대체 자릿수를 사용하는 연도의 주 번호. 일요일은 첫 번째 요일입니다. |
%OV | 대체 자릿수를 사용하는 연도의 ISO 주 번호. ISO 주 번호에 대한 설명은 %V를 참조하십시오. |
%Ow | 대체 자릿수를 사용하는 요일. 일요일은 0입니다. |
%OW | 대체 자릿수를 사용하는 연도의 주 번호. 월요일은 첫 번째 요일입니다. |
%Oy | 대체 자릿수를 사용하는 두 자리 연도. |
%OZ | 시간대가 현재 로케일에 존재하면 %Z와 동일합니다. 그렇지 않으면 현재 작업의 축약된 시간대명이 리턴됩니다. |
리턴값
종료 널 바이트를 포함하는 총 결과 바이트 수가 maxsize 이하인 경우 strftime()은 종료 널 바이트를 포함하지 않고 s로 가리키는 배열에 배치된 바이트 수를 리턴합니다. 그렇지 않으면 0이 리턴되고 배열의 컨텐츠는 불확실합니다.
변환 오류가 발생하면 errno가 ECONVERT로 설정될 수 있습니다.
예
#include <stdio.h>
#include <time.h>
int main(void)
{
char s[100];
int rc;
time_t temp;
struct tm *timeptr;
temp = time(NULL);
timeptr = localtime(&temp);
rc = strftime(s,sizeof(s),"Today is %A, %b %d.\nTime: %r", timeptr);
printf("%d characters written.\n%s\n",rc,s);
return 0;
}
/*************************************************
The output should be similar to:
46 characters written
Today is Wednesday, Oct 24.
Time: 01:01:15 PM
************************************************************/
관련 정보
- asctime() — 시간을 문자 스트링으로 변환
- asctime_r() — 시간을 문자 스트링으로 변환(재시작 가능)
- ctime() — 시간을 문자 스트링으로 변환
- ctime64() — 시간을 문자 스트링으로 변환
- ctime64_r() — 시간을 문자 스트링으로 변환(재시작 가능)
- ctime_r() — 시간을 문자 스트링으로 변환(재시작 가능)
- gmtime() — 변환 시간
- gmtime64() — 변환 시간
- gmtime64_r() — 변환 시간(다시 시작 가능)
- gmtime_r() — 변환 시간(다시 시작 가능)
- localtime() — 변환 시간
- localtime64() — 변환 시간
- localtime64_r() — 변환 시간(다시 시작 가능)
- localtime_r() — 변환 시간(다시 시작 가능)
- setlocale() — 로케일 설정
- strptime() — 문자열을 날짜/시간으로 변환
- time() — 현재 시간 판별
- time64() — 현재 시간 판별
- <time.h>
'Python 기초' 카테고리의 다른 글
파이썬, 회사명에서 주식회사 표현 및 공백 제거 (정규식 아님) (0) | 2022.07.08 |
---|---|
파이썬, % 형식을 이용하여 한자리 월, 일은 앞에 0을 붙인 날짜 만들기 (0) | 2022.07.07 |
파이썬, 이전 달의 1일과 말일 구하는 예제 (0) | 2022.07.05 |
파이썬, 다양한 랜덤 값(정수, 실수, 배치, 선택, 토큰 키, url) 생성 예 (0) | 2022.07.03 |
파이썬, 문자열에서 숫자만 추출하는 예제 (0) | 2022.07.02 |