使用C ++开发时,宏'__TIME__'和'__TIMESTAMP__'无法刷新

时间:2019-02-01 07:45:27

标签: c++ time

我使用Qt开发了Mac应用程序,我想将当前时间写入log.txt,所以我使用了宏__TIME__,并且在写入log.txt之前打印了__TIME__值,

cout << "timeis----" << __TIME__ << endl;

它总是向我显示旧的价值,除了我,每次获得当前时间时该怎么办,非常感谢!

1 个答案:

答案 0 :(得分:0)

这里是实现您要寻找的功能的一种可能方法,但是其中一个功能已被标记为已弃用,并且我目前尚未找到解决方法,也许在不久的将来,当我使用c ++ 20时,可以使用添加到chrono库中的所有新功能来解决弃用问题。现在,这只是演示如何获取时间和日期...

#include <iostream>
#include <chrono>

#pragma warning(disable : 4996)
#include <ctime>

int main() {
    auto currentTime = std::chrono::system_clock::now();
    std::time_t time = std::chrono::system_clock::to_time_t( currentTime );

    std::cout << "timeis---- " << std::ctime(&time) << '\n';

    return 0;
}

可能的输出:

timeis---- Fri Feb 1 03:22:21 2019

但是请记住,功能std::ctime()已被标记为已弃用。