Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql C-如何将时间转换为tm?_Mysql_Tm_Time.h_Time T - Fatal编程技术网

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/你会得到比你简单的评论更广泛的回答。非常感谢你的帮助。经过一些编辑后,它现在可以工作了。