Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
如何获取当前日期和时间并将其以适当的格式保存到char*数组中?_C_Date_Datetime_Time_Arrays - Fatal编程技术网

如何获取当前日期和时间并将其以适当的格式保存到char*数组中?

如何获取当前日期和时间并将其以适当的格式保存到char*数组中?,c,date,datetime,time,arrays,C,Date,Datetime,Time,Arrays,我知道如何获取当前日期和时间并将其保存到数组中。但我想以以下格式打印它:dd.mm.YYY\u HH:mm:ss。如何更改代码以实现这一点 #include <stdio.h> #include <time.h> char *datetime() { char *array = (char*)malloc(sizeof(char)*25); time_t result; result = time(NULL); sprintf(array

我知道如何获取当前日期和时间并将其保存到数组中。但我想以以下格式打印它:
dd.mm.YYY\u HH:mm:ss
。如何更改代码以实现这一点

#include <stdio.h>
#include <time.h>

char *datetime()
{
    char *array = (char*)malloc(sizeof(char)*25);
    time_t result;
    result = time(NULL);
    sprintf(array, "%s", asctime(localtime(&result)));
    array[25] = '\0';
    return array;
}

int main(void)
{
    // prints Sat Aug  3 18:39:07 2013
    printf("%s", datetime());

    // how to print:
    // 03.08.2013_18:39:07
    // ?

    return(0);
}
#包括
#包括
char*datetime()
{
char*数组=(char*)malloc(sizeof(char)*25);
时间&结果;
结果=时间(空);
sprintf(数组,“%s”,asctime(localtime(&result));
数组[25]='\0';
返回数组;
}
内部主(空)
{
//打印日期:2013年8月3日星期六18:39:07
printf(“%s”,datetime());
//如何打印:
// 03.08.2013_18:39:07
// ?
返回(0);
}

您可以使用
strftime
功能:

strftime
在C99标准7.23.3.5中进行了描述。

使用strftime-请参阅

这看起来像这样-

time_t rawtime;

time (&rawtime);
struct tm  *timeinfo = localtime (&rawtime);
strftime(array, sizeof(array)-1, "%d.%m.%y_%H:%M:%S", timeinfo);

使用。嗯,就像你写的那样,但是得到了奇怪的输出。我的编辑代码:和我的输出:。为什么呢?