[C] 获取和设置系统时间

#嵌入式芯片:

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

int set_sys_tm_all(int year, int mon, int day, int hour, int min, int sec)
{
    time_t rawtime;
    struct tm *timeinfo;
    struct timeval tv;
    time(&rawtime);
    timeinfo = localtime(&rawtime);
    timeinfo->tm_year = year - 1900;
    timeinfo->tm_mon = mon - 1;
    timeinfo->tm_mday = day;
    timeinfo->tm_hour = hour;
    timeinfo->tm_min = min;
    timeinfo->tm_sec = sec;
    tv.tv_usec = 0;
    tv.tv_sec = mktime(timeinfo);

    return settimeofday(&tv, NULL);
}

char *get_sys_tm_str(int flag_format_YMD)
{
    static char ret_str[35];
    time_t tm_now = time(NULL);
    struct tm *sys_tm = localtime(&tm_now);

    if (flag_format_YMD)
        sprintf(ret_str, "%d-%d-%d %02d:%02d:%02d", sys_tm->tm_year + 1900, sys_tm->tm_mon + 1, sys_tm->tm_mday, sys_tm->tm_hour, sys_tm->tm_min, sys_tm->tm_sec);
    else
        sprintf(ret_str, "%02d:%02d:%02d", sys_tm->tm_hour, sys_tm->tm_min, sys_tm->tm_sec);
    return ret_str;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值