最近使用gps模組獲取解析gprmc資料的時候,獲取到的是utc時間,需要轉換為北京時間,網上看了一些文章,發現存在一些問題,於是自己完善了一下,並做了注釋,方便理解。
typedef struct
*p_nmea_time, s_nmea_time;
//utc時間轉換為任意時區時間,如果是轉換為北京時間,timezone傳8即可
static void utc_to_local_time(p_nmea_time utc_time, int8_t timezone, p_nmea_time local_time)
if(month == 8 || month == 1)//這裡應該是8月和1月,因為8月和1月的上乙個月(7月和12月)的天數是31天的
lastlastday = 31;
} else if(month == 4 || month == 6 || month == 9 || month == 11)
else
if(hour >= 24)// if >24, day+1
} }
if(hour < 0)// if <0, day-1
} }
// transfer value to local_time
local_time->year = year;
local_time->month = month;
local_time->date = day;
local_time->hour = hour;
local_time->min = utc_time->min;
local_time->sec = utc_time->sec;
}
UTC時間與北京時間
經常混淆於此,特地研究了一下,記錄在此以備忘。整個地球分為二十四時區,每個時區都有自己的本地時間。在國際無線電通訊場合,為了統一起見,使用乙個統一的時間,稱為通用協調時 utc,universal time coordinated utc與格林尼治平均時 gmt,greenwich mean tim...
UTC與北京時間
整個地球分為二十四時區,每個時區都有自己的本地時間。在國際無線電通訊場合,為了統一起見,使用乙個統一的時間,稱為通用協調時 utc,universal time coordinated utc與格林尼治平均時 gmt,greenwich mean time 一樣,都與英國倫敦的本地時相同。在本文中,...
UTC時間與北京時間相互轉換
時間戳是指格林威治時間1970年01月01日00時00分00秒 北京時間1970年01月01日08時00分00秒 起至現在的總秒數。public class homecontroller controller public class homecontroller controller 將時間轉換成...