首页 > 解决方案 > 无法将带有秒数的字符串从纪元转换为 date_time

问题描述

我有一个包含从纪元开始的秒数的字符串,我如何将此字符串转换
为这样的格式 -

年-月-日 HH:MM:SS

这里 MONTH 应该显示月份编号, DAY 给出日期编号。此外,时间需要采用 24 小时格式。
例如 :

2019-06-26 11:14:25

我曾尝试使用 strptime 但没有成功,有人可以帮助我解决我做错的事情。
这是我迄今为止尝试过的

int main()
{
    string timee = "12341234534";

    const char *ptr = timee.c_str();
    struct tm tim;
    strptime(ptr, "%S", &tim);
    time_t abcd = mktime(&tim);

    cout<<abcd;
    return 0;

}

在另一个stackoverflow链接上找到此代码片段 如何将包含时间的字符串变量转换为c++中的time_t类型?

标签: c++datetime

解决方案


你的问题有点令人困惑,但我想我知道你想要什么......

如果时间的time_t格式兼容,则只需将其直接读取到time_t变量中,然后进行转换,std::localtime这样您就可以使用std::put_time.

就像是

std::time_t time;
std::cin >> time;
std::cout << std::put_time(std::localtime(&time), "%F %T") << '\n';

推荐阅读