c++ - 获取当前时间作为 YYYY-MM-DD-HH-MM-SS 字符串

标签 c++ boost string-formatting boost-date-time

我正在尝试以一种优雅的方式将当前时间作为“YYYY-MM-DD-HH-MM-SS”格式的字符串。我可以从 Boost 的“日期时间”库中获取 ISO 格式的当前时间,但它有其他对我不起作用的分隔字符串(我在文件名中使用它)。 当然,我可以只替换分隔字符串,但感觉有一种更好的方法可以使用日期时间的格式化选项来做到这一点。有没有这样的方法,如果有,怎么用?

最佳答案

使用 std::strftime ,它是标准的 C++。

#include <cstdio>
#include <ctime>

int main ()
{
    std::time_t rawtime;
    std::tm* timeinfo;
    char buffer [80];

    std::time(&rawtime);
    timeinfo = std::localtime(&rawtime);

    std::strftime(buffer,80,"%Y-%m-%d-%H-%M-%S",timeinfo);
    std::puts(buffer);

    return 0;
}

关于c++ - 获取当前时间作为 YYYY-MM-DD-HH-MM-SS 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438482/

相关文章:

c++ - 非本地 C++11 lambda 是否存在于匿名 namespace 中?

c++ - GTKMM 和 boost.asio

c# - 格式十进制 c# - 保留最后一个零

python - 编辑列表以在不同位置添加字符串以输出格式化字符串

c++ - C++ 中函数的特殊限定符

c++ - 使用具有 string.reserve() 的字符串实例化结构

通过归档的 C++ 优先级

C++ STL : a good way to parse a sensor response

c++ - 将 openmp 与 odeint 和自适应步长一起使用

function - 在函数中间更改参数的值