C语言日期和时间初始值设置

问题遇到的现象和发生背景

时间初始状态显示无法更改


/**********时间状态显示**********/
void timedisplay()
{
    if(bit_time == 1 && bit_extra == 1)
    {
        L1 = 0;
        strtime[0] = ' ';
        strtime[1] = ' ';
        strtime[2] = ' ';
        strtime[3] = '2';
        strtime[4] = '0';
        strtime[5] = (time[6] >> 4) + '0';
        strtime[6] = (time[6] & 0X0F) + '0';
        strtime[7] = '-';
        strtime[8] = (time[4] >> 4) + '0';
        strtime[9] = (time[4] & 0X0F) + '0';
        strtime[10] = '-';
        strtime[11] = (time[3] >> 4) + '0';
        strtime[12] = (time[3] & 0X0F) + '0';
        strtime[13] = ' ';
        strtime[14] = ' ' ;
        strtime[15] = ' ';
        strtime[15] = '\0';
    LCD1602show(0,0,strtime);
        
        strtime[0] = ' ';
        strtime[1] = ' ';
        strtime[2] = ' ';
        strtime[3] = ' ';
        strtime[4] = (time[2] >> 4) + '0';
        strtime[5] = (time[2] & 0X0F) + '0';
        strtime[6] = ':';
        strtime[7] = (time[1] >> 4) + '0';
        strtime[8] = (time[1] & 0X0F) + '0';
        strtime[9] = ':';
        strtime[10] = (time[0] >> 4) + '0';
        strtime[11] = (time[0] & 0X0F) + '0';
        strtime[12] = ' ';
        strtime[13] = ' ';
        strtime[14] = ' ';
        strtime[15] = ' ';
        strtime[16] = '\0';
        LCD1602show(0,1,strtime);
    }
我想要达到的结果

日期和时间初始状态如何改为当前

获取当前时间

        #include <time.h>
        time_t now = time(0);
        tm * ltm = localtime(&now);
        int year = ltm->tm_year + 1900;
        int mon = ltm->tm_mon + 1;
        int day = ltm->tm_mday;
        int hour = ltm->tm_hour;
        int min = ltm->tm_min;
        
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^