Unix时间戳转换

本文介绍如何将UNIX时间戳转换为结构化的日历时间,并反向操作的方法。包括两个核心函数:Time_ConvUnixToCalendar用于从UNIX时间戳获取可读的日历时间;Time_ConvCalendarToUnix则实现从日历时间回转为UNIX时间戳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*******************************************************************************
* Function Name  : Time_ConvUnixToCalendar(time_t t)
* Description    : 转换UNIX时间戳为日历时间
* Input                  : u32 t  当前时间的UNIX时间戳
* Output                 : None
* Return                 : struct tm
*******************************************************************************/
struct tm Time_ConvUnixToCalendar(time_t t)
{
        struct tm *t_tm;
        t_tm = localtime(&t);
        t_tm->tm_year += 1900;        //localtime转换结果的tm_year是相对值,需要转成绝对值
        return *t_tm;
}


/*******************************************************************************
* Function Name  : Time_ConvCalendarToUnix(struct tm t)
* Description    : 写入RTC时钟当前时间
* Input                  : struct tm t
* Output                 : None
* Return                 : time_t
*******************************************************************************/
time_t Time_ConvCalendarToUnix(struct tm t)
{
        t.tm_year -= 1900;  //外部tm结构体存储的年份为2008格式
                                                //而time.h中定义的年份格式为1900年开始的年份
                                                //所以,在日期转换时要考虑到这个因素。
        return mktime(&t);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值