parse

parse (chrono 날짜·시간 파싱)

문자열에서 날짜/시간을 파싱해 chrono 타입으로 읽는 함수 모음이에요. <chrono> 헤더, C++20부터.

출처: cppreference

본문

std::chrono::parse는 형식 문자열을 이용해 날짜·시간 문자열을 chrono 타입으로 파싱해요.

template<class CharT, class Traits, class Alloc, class Parsable>
std::chrono::sys_time<std::chrono::milliseconds>
parse( const std::basic_string<CharT, Traits, Alloc>& fmt, Parsable& tp );

std::chrono::time_point (sys_time/local_time/utc_time)이나 year_month_day 같은 타입을 파싱 대상으로 받아요. 형식 지정자는 std::format의 chrono 형식과 유사한 %Y, %m, %d, %H, %M, %S, %Z(시간대) 등을 사용해요.

std::chrono::sys_days day;
std::chrono::parse("%Y-%m-%d", "2023-06-15", day);

파싱 결과는 대상 타입에 따라 sys_time<milliseconds> 같은 형태로 오프셋 정보도 포함할 수 있어요. 파싱 실패 시 parse는 부적절한 결과를 반환할 수 있어서, 결과의 타당성을 std::chrono::parse 문서의 오류 처리 규칙으로 확인해야 해요.

operator>> 기반 스트림 파싱 대신, 명시적 형식으로 날짜·시간 문자열을 안전하게 읽고 싶을 때 사용해요.

더 알아보기 (Learn more)

cppreference