其他分享
首页 > 其他分享> > 如何将time_t转换为tm?

如何将time_t转换为tm?

作者:互联网

我有一个使用time_t数据类型的变量.我想将此类型转换为“ YYYY-MM-DD HH:MM:SS”.我只知道它是否仅在localtime()示例中有效:

char buff[20];
time_t now = time(NULL);
strftime(buff, 20, "%Y-%m-%d %H:%M:%S", localtime(&now));

有什么建议怎么转换吗?因为我的时间总是每分钟增加,而不是像localtime()这样固定的时间.我需要此转换以与MySQL数据库中的datetime类型匹配.

解决方法:

函数gmtime和localtime(分别用于UTC和本地时间)会将任意time_t转换为带有年份,月份等各个字段的struct tm.

然后,您可以直接使用strftime,也可以使用sprintf从中创建字符串,例如:

char buff[11];
sprintf (buff, "%04d-%02d-%02d",
    mytm.tm_year + 1900,
    mytm.tm_mon + 1,
    mytm.tm_mday);

标签:tm,time-t,time-h,mysql
来源: https://codeday.me/bug/20191030/1964362.html