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_lock::from_time_t:auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));
経過時間の計算
を std::chrono::time_point で使用します。指定された履歴から経過時間を簡単に計算できますdate:auto now = std::chrono::system_clock::now(); auto duration = now - tp;
時間コンポーネントへのアクセス
std::chrono::duration は、個々の時間コンポーネントへのアクセスを提供します:C 11バージョン 5 より前のサポート
GCC は std::get_time を実装していません。ただし、strptime を使用する代替方法も利用できます:以上がC 11 の std::chrono を使用して日付文字列を解析し、時刻計算を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。