Mysql C-如何将时间转换为tm?
我有一个使用Mysql C-如何将时间转换为tm?,mysql,tm,time.h,time-t,Mysql,Tm,Time.h,Time T,我有一个使用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数据库中
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
转换为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\u t
转换为tm
@Angga,这两个函数与当前时间无关。它们将处理任意的time\t
值,可以是time(0)
中的当前时间,也可以是(time\t)42
等任何其他时间点。我已经尝试过了,但localtime()需要常量time\t*,而我的变量使用的是time\t数据类型。我试图强制转换它,或者使用localtime(&myvar)它使我的程序出错。有什么解决办法吗?是的,把你的错误贴出来,让我们看看,最好是在一个新的问题上,因为1/它只与这个问题有切点关系,2/你会得到比你简单的评论更广泛的回答。非常感谢你的帮助。经过一些编辑后,它现在可以工作了。