У меня есть приведенный ниже код, из которого мы пытаемся получить текущую временную метку в микросекундах с начала эпохи, но мы используем steady_clock
.
inline uint64_t get_timestamp()
{
std::chrono::time_point<std::chrono::steady_clock> ts = std::chrono::steady_clock::now();
return std::chrono::duration_cast<std::chrono::microseconds>(ts.time_since_epoch()).count();
}
Это правильный способ сделать это, поскольку, насколько я понимаю, steady_clock
используется для измерения времени, а не для получения текущего времени суток? Или я должен использовать system_clock
для этого, как показано ниже:
inline uint64_t get_timestamp()
{
std::chrono::time_point<std::chrono::system_clock> ts = std::chrono::system_clock::now();
return std::chrono::duration_cast<std::chrono::microseconds>(ts.time_since_epoch()).count();
}
Мне нужно использовать пакет std::chrono
только потому, что он используется во всем нашем коде.
std::uint64_t
? Во всяком случае, ненадолго. Текущее время с начала эпохи составляет 1440440480 секунд на момент написания этой статьи, что составляет 0x51dac207a0000 микросекунд. - person Nik Bougalis   schedule 24.08.2015