在 C++ 中自定义日期格式

发布于 2024-12-09 21:44:47 字数 514 浏览 1 评论 0原文

我有这个功能:

void Log::Write(string logline){
//2011-10-12 13:07:40 correct format
    time_t rawtime;
    struct tm * timeinfo;
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    m_stream.write( asctime (timeinfo), 24 );
    m_stream << " - " << logline << std::endl;
}

输出是这样的:

2011 年 10 月 13 日星期四 12:35:30

但我想看到评论部分的输出:

2011-10-12 13:07:40

怎么可能?

I have this function:

void Log::Write(string logline){
//2011-10-12 13:07:40 correct format
    time_t rawtime;
    struct tm * timeinfo;
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    m_stream.write( asctime (timeinfo), 24 );
    m_stream << " - " << logline << std::endl;
}

The output is like this:

Thu Oct 13 12:35:30 2011

but I wanna see the output like the comment section:

2011-10-12 13:07:40

How is it possible?

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

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

发布评论

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

评论(4

萝莉病 2024-12-16 21:44:47

这是很有可能的。查看 strftime() 的联机帮助页。在这种情况下,您需要:

void Log::Write(string line) 
{
    time_t rawtime;
    struct tm * timeinfo;
    char buffer [80];

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

    strftime (buffer,80,"%Y-%m-%d %H:%M:%S",timeinfo);
    m_stream << buffer << " - " << line << endl;
}

It's very possible. Look at the manpage for strftime(). In this case, you'd want:

void Log::Write(string line) 
{
    time_t rawtime;
    struct tm * timeinfo;
    char buffer [80];

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

    strftime (buffer,80,"%Y-%m-%d %H:%M:%S",timeinfo);
    m_stream << buffer << " - " << line << endl;
}
被翻牌 2024-12-16 21:44:47

Boost 为此提供了一个

Boost offers a library for that.

舞袖。长 2024-12-16 21:44:47

您可以使用 strftime()< /code>函数可以按照您想要的所有方式格式化时间。在您的情况下,格式字符串 "%Y-%m-%d %H:%M:%S" 应该产生所需的结果。

You can use the strftime() function to format times in all ways you want. In your case the format string "%Y-%m-%d %H:%M:%S" should produce the desired result.

无妨# 2024-12-16 21:44:47

您可以使用 strftime() 将 struct tm 转换为具有某种灵活格式的字符串。

You can use strftime() to convert a struct tm into a string with somewhat flexible formatting.

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