获取 YYYY-MM-DD-HH-MM-SS 字符串形式的当前时间

发布于 2024-10-26 01:25:11 字数 189 浏览 5 评论 0原文

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

I'm trying to get the current time as a "YYYY-MM-DD-HH-MM-SS" formatted string in an elegant way. I can take the current time in ISO format from Boost's "Date Time" library, but it has other delimiting strings which won't work for me (I'm using this in a filename).
Of course I can just replace the delimiting strings, but have a feeling that there's a nicer way to do this with date-time's formatting options. Is there such a way, and if so, how can I use it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半葬歌 2024-11-02 01:25:11

使用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;
}

Use std::strftime, it is standard 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;
}
雪化雨蝶 2024-11-02 01:25:11

答案取决于“获取”和“获取”的含义。如果您尝试输出格式化的时间字符串,请使用 strftime()。如果您尝试将文本字符串解析为二进制格式,请使用 strptime()。

The answer depends on what you mean by get and take. If you are trying to output a formatted time string, use strftime(). If you are trying to parse a text string into a binary format, use strptime().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文