목차
- strftime 함수란?
- strftime 함수 원형과 인자 및 반환 값 설명
- strftime을 사용하여 오늘 날짜 및 시간을 문자열로 변환하는 예제
- strftime 특정 시간 값을 포맷 출력하기 예제
- strftime 새로운 파일에 생성 날짜 이름 추가하기 예제
- strftime 사용시 주의점
1. strftime 함수란?
strftime 함수는 C언어에서 struct tm
구조체에 저장된 날짜와 시간 정보를 원하는 형식의 문자열로 변환하는 함수입니다.
변환된 문자열은 지정된 형식에 따라 년, 월, 일, 시, 분, 초 등의 정보를 포함할 수 있습니다.
2. strftime 함수 원형과 인자 및 반환 값 설명
strftime 함수의 원형과 인자, 반환 값에 대해 설명합니다.
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr);
str
: 변환된 문자열이 저장될 버퍼를 가리키는 포인터입니다.maxsize
: 버퍼의 크기를 나타냅니다. 변환된 문자열은 최대maxsize - 1
길이까지 저장됩니다. 남는 공간은 널 종료 문자('\0')로 채워집니다.format
: 변환할 형식을 지정하는 서식 문자열입니다. 이 문자열에는 서식 지정자가 포함되며, 각 지정자는 날짜 및 시간 정보를 나타냅니다.timeptr
: 변환할struct tm
포인터를 가리킵니다. 일반적으로localtime
함수로 얻은struct tm
포인터를 사용합니다.- 반환 값: 변환된 문자열의 길이를 반환합니다. 널 종료 문자를 포함하지 않습니다.
3. strftime을 사용하여 오늘 날짜 및 시간을 문자열로 변환하는 예제
아래는 strftime
함수를 사용하여 오늘 날짜와 시간을 원하는 형식으로 변환하여 출력하는 예제입니다.
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
struct tm* time_info;
char time_str[80];
// 현재 시간 구하기
current_time = time(NULL);
time_info = localtime(¤t_time);
// 시간을 원하는 형식으로 문자열로 변환하기
strftime(time_str, sizeof(time_str), "%Y년 %m월 %d일 %H시 %M분 %S초", time_info);
printf("오늘 날짜와 시간: %s\n", time_str);
return 0;
}
4. strftime 특정 시간 값을 포맷 출력하기 예제
strftime 함수와 조합하여 특정 시간 값을 문자열로 변환하는 예제입니다.
#include <stdio.h>
#include <time.h>
int main() {
time_t custom_time;
struct tm time_info;
char time_str[50];
// 특정 시간 값 설정
time_info.tm_year = 2023 - 1900; // 년도: 2023
time_info.tm_mon = 6 - 1; // 월: 6 (1월은 0, 6월은 5)
time_info.tm_mday = 20; // 일: 20
time_info.tm_hour = 15; // 시간: 15
time_info.tm_min = 30; // 분: 30
time_info.tm_sec = 0; // 초: 0
// tm 구조체를 시간 값으로 변환
custom_time = mktime(&time_info);
// 시간을 원하는 형식으로 문자열로 변환하기
strftime(time_str, sizeof(time_str), "%Y년 %m월 %d일 %H시 %M분 %S초", &time_info);
printf("특정 시간 값 문자열: %s\n", time_str);
return 0;
}
5. strftime 새로운 파일에 생성 날짜 이름 추가하기 예제
strftime 함수를 사용하여 파일명에 시간 정보를 추가하는 예제입니다.
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
struct tm* time_info;
char filename[100];
// 현재 시간 구하기
current_time = time(NULL);
time_info = localtime(¤t_time);
// 파일명에 시간 정보 추가
strftime(filename, sizeof(filename), "data_%Y%m%d_%H%M%S.txt", time_info);
printf("파일명: %s\n", filename);
return 0;
}
6. strftime 사용시 주의점
strftime 함수를 사용할 때 다음 사항에 유의해야 합니다.
- 시간 정보를 담을 버퍼 크기를 충분히 지정해야 합니다. 충분한 공간이 없으면 결과가 잘려서 저장될 수 있습니다.
- 서식 지정자를 올바르게 사용해야 합니다. 잘못된 서식 지정자는 원하는 결과를 얻지 못할 수 있습니다.
- 로케일 설정에 따라 결과가 달라질 수 있습니다. 로케일을 설정하면 날짜와 시간 정보가 해당 지역에 맞게 표시됩니다.
- 사용하는 시스템에 따라 지원하는 서식 지정자가 다를 수 있습니다. 특정 시스템에서 지원하지 않는 지정자는 오류를 발생시킬 수 있습니다
반응형