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到此時經過的秒數。