我有一个使用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
类型。
答案 0 :(得分:4)
函数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);