localtime函数用于将Unix时间戳转换成本地世界协调时间(Universal Time Coordinated,UTC),gmtime函数用于将Unix时间戳转换成0时区UTC时间。
在嵌入式系统中,可能因为时区未设置,导致localtime得到的也是0时区时间,需要自己加8小时得到北京时间。
1、首先包含time.h头文件。
2、示例如下。
1 void unixtime_to_date(uint32_t unixtime, struct date *date) 2 { 3 uint32_t t = unixtime + 28800; //北京时间是东8区,时间戳要加8小时 4 struct tm *t_tm; 5 6 t_tm = localtime(&t); 7 date->year = tm->tm_year + 1900; 8 date->month = tm->tm_mon + 1; 9 date->day = tm->tm_mday; 10 date->hour = tm->tm_hour; 11 date->minute = tm->tm_min; 12 date->second = tm->tm_sec; 13 }
补充:
GMT(Greenwich Mean Time)时间,又叫格林威治时间。把格林威治1970年1月1日0点0分0秒定义为时间0。当前GMT时间是指从时间0到此时经过的秒数。
