无法将秒数的字符串从纪元转换为date_time

时间:2019-06-26 05:47:03

标签: c++ datetime

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

  

YEAR-MONTH-DAY 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链接上找到了此代码段 How to convert a string variable containing time to time_t type in c++?

1 个答案:

答案 0 :(得分:1)

您的问题有点令人困惑,但我想我已经弄清楚了您想要什么...

如果时间采用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';