목차
- strptime 함수란?
- strptime 함수 원형과 인자 및 반환 값 설명
- strptime을 사용하여 날짜 및 시간 문자열을 시간으로 변환하는 예제
- strptime 다른 시간 형식 문자열 파싱 예제 - 1
- strptime 다른 시간 형식 문자열 파싱 예제 - 2
- strptime 사용시 주의점
1. strptime 함수란?
strptime 함수는 C언어에서 주어진 날짜와 시간 형식의 문자열을 struct tm
구조체로 변환하는 함수입니다.
이는 strftime
함수의 반대 기능을 수행합니다.
strptime 함수를 사용하면 문자열을 구문 분석하여 날짜와 시간 정보를 추출하고, 이를 struct tm
구조체로 저장할 수 있습니다.
2. strptime 함수 원형과 인자 및 반환 값 설명
strptime 함수의 원형과 인자, 반환 값에 대해 설명합니다.
char *strptime(const char *str, const char *format, struct tm *timeptr);
str
: 변환할 날짜 및 시간 문자열을 가리키는 포인터입니다.format
: 입력된 날짜 및 시간 문자열의 형식을 지정하는 서식 문자열입니다. 이 문자열에는 서식 지정자가 포함되며, 각 지정자는 날짜 및 시간 정보를 나타냅니다.timeptr
: 추출된 날짜와 시간 정보를 저장할struct tm
구조체 포인터입니다.- 반환 값: 변환된 문자열에서 다음으로 읽을 위치를 가리키는 포인터를 반환합니다. 변환에 실패하면
NULL
을 반환합니다.
3. strptime을 사용하여 날짜 및 시간 문자열을 시간으로 변환하는 예제
아래는 strptime
함수를 사용하여 날짜와 시간 형식의 문자열을 struct tm
구조체로 변환하는 예제입니다.
#include <stdio.h>
#include <time.h>
int main() {
const char* date_string = "2023-07-20 15:30:00";
const char* format = "%Y-%m-%d %H:%M:%S";
struct tm time_info;
// 날짜와 시간 문자열을 구조체로 변환
char* next_ptr = strptime(date_string, format, &time_info);
if (next_ptr == NULL) {
printf("날짜와 시간 변환에 실패했습니다.\n");
return 1;
}
printf("추출된 시간 정보:\n");
printf("년도: %d\n", time_info.tm_year + 1900);
printf("월: %d\n", time_info.tm_mon + 1);
printf("일: %d\n", time_info.tm_mday);
printf("시간: %d\n", time_info.tm_hour);
printf("분: %d\n", time_info.tm_min);
printf("초: %d\n", time_info.tm_sec);
return 0;
}
4. strptime 다른 시간 형식 문자열 파싱 예제 - 1
strptime 함수와 조합하여 다양한 날짜 및 시간 형식을 추출하는 예제입니다.
#include <stdio.h>
#include <time.h>
int main() {
const char* date_string = "July 20, 2023 15:30:00";
const char* format = "%B %d, %Y %H:%M:%S";
struct tm time_info;
// 날짜와 시간 문자열을 구조체로 변환
char* next_ptr = strptime(date_string, format, &time_info);
if (next_ptr == NULL) {
printf("날짜와 시간 변환에 실패했습니다.\n");
return 1;
}
printf("추출된 시간 정보:\n");
printf("년도: %d\n", time_info.tm_year + 1900);
printf("월: %d\n", time_info.tm_mon + 1);
printf("일: %d\n", time_info.tm_mday);
printf("시간: %d\n", time_info.tm_hour);
printf("분: %d\n", time_info.tm_min);
printf("초: %d\n", time_info.tm_sec);
return 0;
}
5. strptime 다른 시간 형식 문자열 파싱 예제 - 2
strptime 함수를 사용하여 다른 시간 형식의 문자열을 구조체로 변환하는 예제입니다.
#include <stdio.h>
#include <time.h>
int main() {
const char* date_string = "2023/07/20 15:30";
const char* format = "%Y/%m/%d %H:%M";
struct tm time_info;
// 날짜와 시간 문자열을 구조체로 변환
char* next_ptr = strptime(date_string, format, &time_info);
if (next_ptr == NULL) {
printf("날짜와 시간 변환에 실패했습니다.\n");
return 1;
}
printf("start time:\n");
printf("year: %d\n", time_info.tm_year + 1900);
printf("month: %d\n", time_info.tm_mon + 1);
printf("day: %d\n", time_info.tm_mday);
printf("hour: %d\n", time_info.tm_hour);
printf("minute: %d\n", time_info.tm_min);
return 0;
}
6. strptime 사용시 주의점
strptime 함수를 사용할 때 주의해야 할 사항들입니다.
- 입력된 문자열과 지정한 형식의 일치 여부를 확인해야 합니다. 만약 형식이 일치하지 않으면 변환에 실패하고
NULL
을 반환합니다. struct tm
구조체는 모든 플랫폼에서 지원되지 않을 수 있으므로, 이식성을 고려하여 다른 방법을 사용해야 할 수도 있습니다.- 로케일 설정에 따라 결과가 달라질 수 있습니다. 로케일을 설정하면 날짜와 시간 정보가 해당 지역에 맞게 표시됩니다.
반응형