- chrono[meta header]
- std::chrono[meta namespace]
- class template[meta id-type]
- cpp11[meta cpp]
namespace std {
namespace chrono {
template <class Clock, class Duration = typename Clock::duration>
class time_point;
}}
time_pointは、時間軸上の一点を表現するクラスである。
エポックと呼ばれる、起点となる時間からの経過時間によって時間軸上の一点を表す。
エポックはテンプレートパラメータ Clock によって定められ、異なる Clock 同士での演算はできない。
| 名前 |
説明 |
対応バージョン |
min |
最小値 |
C++11 |
max |
最大値 |
C++11 |
| 名前 |
説明 |
対応バージョン |
clock |
時計型 Clock |
C++11 |
duration |
時間間隔の型 Duration |
C++11 |
rep |
時間間隔の数値型 Duration::rep |
C++11 |
period |
時間の周期を表す型 Duration::period |
C++11 |
| 名前 |
説明 |
対応バージョン |
common_type |
異なるtime_point間の共通の型を求める |
C++11 |
| 名前 |
説明 |
対応バージョン |
template <class T> struct hash; |
hashクラスの先行宣言 |
C++26 |
template<class Clock, class Duration> struct hash<chrono::time_point<Clock, Duration>>; |
hashクラスのtime_pointに対する特殊化。hash<Duration>が有効な場合のみ有効 |
C++26 |
#include <iostream>
#include <chrono>
#include <ctime>
#include <iomanip>
using std::chrono::system_clock;
int main() {
// 現在日時を取得
system_clock::time_point p = system_clock::now();
// 出力
std::time_t t = system_clock::to_time_t(p);
const std::tm* lt = std::localtime(&t);
std::cout << std::put_time(lt, "%c") << std::endl;
}
- system_clock[link system_clock.md]
- now()[link system_clock/now.md]
- to_time_t[link system_clock/to_time_t.md]
- std::time_t[link /reference/ctime/time_t.md]
- std::tm[link /reference/ctime/tm.md.nolink]
- std::localtime[link /reference/ctime/localtime.md.nolink]
- Clang: 3.0 [mark verified], 3.1 [mark verified], 3.2 [mark verified], 3.3 [mark verified]
- Visual C++: 2012 [mark verified], 2013 [mark verified], 2015 [mark verified]