Android 之 日期時間 時區同步

系統設置--日期和時間--自動確定日期和時間:
智能機 提供2類日期和時間同步方式:
使用網絡提供時間
使用GPS提供時間
以及”自動確定時區“的選項。
Android 之 時間和日期的自動同步
那就是說,我們可以通過如下3種方式自動設置我們的時間和日期:
A、可以分別從SIM1和SIM2卡的無線通信網絡(2G/3G/4G)獲得
B、通過WiFi連接到Internet網絡獲得
C、透過本身自帶的GPS模塊接受GPS衛星信息獲得
注:
A方式需要打開SIM1或者SIM2卡的數據連接
C方式需要安裝GPS定位應用,且只有當GPS定位成功後纔會生效。

下面我們來學習一些基本概念
GMT
格林威治標準時間(Greenwich Mean Time)
是指位於倫敦郊區的皇家格林尼治天文臺的標準時間,本初子午線即是通過該點的經線。
UTC
Universal TimeCoordinated 世界統一時間,世界標準時間,國際協調時間
UTC是基於GMT, 由原子鐘提供的更準確的同一時間。
Time zone
時區,亦作 time belt。
以英國格林威治天文臺的本初子午線爲基點,全球劃分爲24個時區,每區各佔經度15° 以本初子午線爲中央經線的時區爲零時區,由零時區向東、西各分12區。
最後的東、西12區都是半時區,共同使用180°經線的地方時。 每個時區的中央經線上的時間就是這個時區內統一採用的時間,稱爲區時,相鄰兩個時區的時間相差1小時。
Local time
地方時, 本地時間。
是以觀測者子午線爲參考點的時間標準, 反映當地的自然時間。
中國把首都北京所在的東8區的時間作爲全國統一的時間,稱爲北京時間。

其實,整個世界可以就使用GMT/UTC就夠了,但是各地的日出日落的自然生活反映到時間上就不那麼自然了:
倫敦人假設8點鐘吃早飯, 北京人吃早飯就是16點。
時區的劃分和本地時間的使用, 就很好的解決了這個問題。

從技術實現方面再來解釋一下
通過網絡同步時間,涉及到兩個協議:NITZ和NTP。
它們使用的條件不同,可以獲取的信息也不一樣;
勾選這個功能後,手機首先會嘗試NITZ方式,若獲取時間失敗,再會嘗試使用NTP方式。

NITZ(network identity and time zone)
NITZ是一種GSM/WCDMA基地臺方式,必須插入SIM卡,且需要operator支持;
可以提供時間和時區信息。
中國大陸運營商基本是不支持的。(據說成都地區的中國聯通支持NITZ,深圳聯通卻不支持。)

NTP(network time protocol)
單純通過網絡(GPRS/EDGE/3G/HSPA/WiFi)獲取時間,只提供時間信息,沒有時區信息。
NTP在無SIM卡或operator不支持NITZ時使用。
因此在不支持NITZ的地區,自動獲取時區功能實際上是無效的。
它根據獲取到的GMT時間,按照手機本身設置的時區信息,計算出本地時間,顯示在設備上。 NTP還有一種緩存機制:當前成功獲取的時間會保存下來,當用戶下次開啓自動更新時間功能時,會結合手機clock來進行時間更新。
這也是沒有任何網絡時手機卻能自動更新時間的原因。
此外,因爲NTP是通過網絡上的時間服務器獲取時間,所以時間較長時間未同步時,可能是你手機訪問的時間服務器連接有問題。

使用GPS提供的時間
當GPS 定位成功後,會根據當前時區,將GPS UTC Time轉化成對應時區的local time.
爲了確保GPS能成功定位,請到室外GPS信號良好的空曠地(視野範圍內無建築物遮擋)進行測試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章