开始一天时间戳记C ++

时间:2018-11-23 07:43:53

标签: c++ time timestamp chrono

我需要在c ++中获取时间戳。我在chrono中找到了一些功能,例如:

 std::chrono::system_clock::now()

但是它正在返回当前时间。如何获得一天的时间戳?我的意思是表示今天的00:00:00和昨天的时间相同?我是c ++的新手。.

1 个答案:

答案 0 :(得分:1)

我认为,您只需要日期,而无需时间。因此,您可以这样获得它:

#include <chrono>
#include <ctime> 
#include <iomanip>
#include <iostream>

using namespace std;

int main()
{
    auto curr = std::chrono::system_clock::now();
    auto tm = std::chrono::system_clock::to_time_t(curr);
    cout << std::put_time(std::localtime(&tm), "%d.%m.%Y");
}

当然,如果需要,您可以强行重置时间字段:

    auto curr = std::chrono::system_clock::now();
    time_t tm = std::chrono::system_clock::to_time_t(curr);
    auto lt = std::localtime(&tm);
    lt->tm_hour = 0;
    lt->tm_min = 0;
    lt->tm_sec = 0;   
    cout << lt->tm_mday << "." << lt->tm_mon + 1 << "." << lt->tm_year + 1900 << endl;