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

时间:2013-08-03 16:54:09

标签: c date datetime time arrays

我知道如何获得当前日期&时间并将其保存到数组中。但我想以格式打印它:dd.mm.YYY_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);
}

2 个答案:

答案 0 :(得分:1)

您可以使用strftime功能: http://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html

strftime在C99标准7.23.3.5中有描述。

答案 1 :(得分:1)

使用strftime - 请参阅here

这将是这样的 -

time_t rawtime;

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