> 백엔드 개발 > C++ > C 11의 std::chrono를 사용하여 날짜 문자열을 구문 분석하고 시간 계산을 수행하려면 어떻게 해야 합니까?

C 11의 std::chrono를 사용하여 날짜 문자열을 구문 분석하고 시간 계산을 수행하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-11-25 12:52:12
원래의
836명이 탐색했습니다.

How Can I Parse Date Strings and Perform Time Calculations Using C  11's std::chrono?

C 11의 std::chrono를 사용하여 날짜 문자열 구문 분석

과거 날짜 문자열을 처리할 때 C 날짜로 구문 분석해야 하는 경우가 종종 있습니다. 다양한 계산을 위한 표현 C 11의 std::chrono 네임스페이스는 시간 처리를 위한 강력한 도구를 제공합니다.

날짜 문자열 구문 분석

"Thu Jan 9 12" 형식의 날짜 문자열을 구문 분석하려면: 35:34 2014", std::stringstream 및 std::get_time을 활용할 수 있습니다. 함수:

std::stringstream ss("Jan 9 2014 12:35:34");
std::tm tm = {};
ss >> std::get_time(&tm, "%b %d %Y %H:%M:%S");
로그인 후 복사

이것은 문자열을 개별 시간 구성 요소가 포함된 std::tm 구조체로 구문 분석합니다.

std::chrono::time_point로 변환

파싱된 날짜를 나타내는 std::chrono::time_point를 얻으려면 다음을 사용합니다. std::chrono::system_clock::from_time_t:

auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));
로그인 후 복사

경과 시간 계산

std::chrono::time_point를 사용하면 경과 시간을 쉽게 계산할 수 있습니다. 지정된 기록으로부터의 시간 날짜:

auto now = std::chrono::system_clock::now();
auto duration = now - tp;
로그인 후 복사

시간 구성요소 액세스

std::chrono::duration은 개별 시간 구성요소에 대한 액세스를 제공합니다:

  • duration .count()는 시간 단위(초)의 총 개수를 반환합니다. 기본값)
  • duration.seconds()는 초를 가져옵니다
  • duration. Minutes()는 분을 가져옵니다
  • duration.hours()는 시간을 가져옵니다
  • duration.days ()는 요일을 제공합니다

C 11

버전 5 이전의 GCC는 std::get_time을 구현하지 않습니다. 그러나 strptime을 사용하는 대안도 사용할 수 있습니다:

std::tm tm = {};
strptime("Thu Jan 9 2014 12:35:34", "%a %b %d %Y %H:%M:%S", &tm);
로그인 후 복사

위 내용은 C 11의 std::chrono를 사용하여 날짜 문자열을 구문 분석하고 시간 계산을 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿