健行途中跨越時區,會不會讓記錄的時間出錯
騎得夠遠,或者走一條點對點的長線,路上完全可能悄無聲息地跨過一條時區分界線——沒有牌子,沒有提示,唯一的線索是手機把顯示的時刻悄悄換了一下。把一整天的記錄交給這部手機之前,會擔心這個是很自然的:時鐘本身都跳了,記錄下來的行進時長會不會也跟著跳?不會,原因倒不是記錄軟體對時區做了什麼聰明的處理,而是行進時長本來就不是拿本地時間算出來的。
先說結論
不會。不管是健行、騎行,還是別的什麼記錄中的路線,中途跨過一條時區線本身,不會影響到之後顯示的距離、時長、行進時間或配速。GPS 軌跡裡的每一個點都帶著一個絕對時刻——協調世界時(UTC),不管人站在地球上哪個地方都是同一套基準。而所有跟時間有關的數字,都是靠比較這些絕對時刻算出來的,不是靠讀那一刻手機螢幕上顯示的「現在幾點」算出來的。本地時鐘可以在半路上變,架在它上面的這套演算法不會跟著變。
底下這套時鐘為什麼根本沒動過
GPS 軌跡給某個點存的,不是「早上九點二十」這種說法,存的是用 UTC 表示的一個瞬間——GPX 檔案裡的每一個時間戳都遵循同一套約定,原因也一樣:一條在某個大陸記錄下來的軌跡,拿到另一個大陸打開時,指的必須還是同一個瞬間,而唯一能保證這一點的辦法,就是不管人站在哪個時區,都拿同一套永遠不變的基準去量。時長、行進時間、配速,全都是靠這些 UTC 瞬間之間的差算出來的——最後一個點的時間戳減去第一個點的,或者把移動區間裡逐點之間的差加起來。這套演算法裡的任何一步,都沒有「我現在在哪個時區」這一環節。
跨過時區線之後,真正變了的是什麼
一部設成自動更新時區的 iPhone,一旦判斷出跨過了分界線,就會重新給顯示的時刻貼標籤,鎖定畫面上的時鐘可能因此往前或往後跳一下。跳動的是貼在某個瞬間上的那個標籤——說出口時用來稱呼它的說法——不是那個瞬間本身。跨線前一秒記錄的點,和跨線後一秒記錄的點,用 UTC 去量依然只差一秒,跟前後這兩塊錶面上分別顯示著什麼完全無關。
這跟一份 GPX 檔案傳到別的地方之後,開始時間看著不對勁的情況,其實是同一件事:座標本身、底層計時的方式都沒動,動的只是疊加在上面、給人看的那層時刻顯示。
換成碼錶會出錯,換成 GPS 軌跡不會
真正會出錯的做法,是把出發時看到的本地時間記在紙上,把到達時看到的本地時間也記在紙上,之後拿兩個數字手動相減。要是中間剛好跨過一條時區線,這一減就直接錯了——減的是兩個根本不在同一把尺子上的數,跟拿攝氏度的讀數去減華氏度的讀數一樣沒有意義。記錄下來的軌跡不會犯這個錯,因為它從來就不是靠相減兩個本地時鐘讀數得出結果的,一直比較的都是兩個絕對瞬間,而一個絕對瞬間不會在乎旁邊那塊錶面上寫的是什麼。
日光節約時間切換,道理是一樣的
一趟健行剛好碰上日光節約時間切換,其實是同一件事的縮小版——沒有一條實體的分界線要跨,但本地的時間偏移量整體挪了一個小時。這不會給記錄下來的時長帶來什麼額外風險,原因跟跨時區完全一樣:這個偏移量只是為了顯示,貼在某個瞬間上的一個標籤,被貼標籤的那個瞬間本身,不管哪邊都沒受影響。
容易想岔的地方
- 看到一條跨了時區的軌跡,開始時間和結束時間對不上的樣子,就以為行進時長肯定也算錯了——顯示出來的時刻看著彆扭沒關係,行進時長本來就不是從這兩個顯示出來的標籤算出來的,數字依然是對的。
- 把一趟跨好幾天的行程,靠記在什麼地方的本地出發和到達時間手動相減來算總時長——這才是真正會出錯的做法,跟 GPS 軌跡本身怎麼處理同一次跨線完全是兩碼事。
- 以為要讓手機知道自己現在在哪個時區,記錄才會準——不需要。不管手機自己認為本地在哪個時區,記錄始終在往每個點上寫絕對時間戳。
- 擔心正好在跨線那一刻處於暫停狀態的軌跡會有什麼不一樣——不會。暫停的那段本來就不記錄任何點,跨線期間的時區變化,也就沒什麼可影響到的東西。
TrailCam 能幫上什麼忙
TrailCam 在你出門在外的整段時間裡都在背景記錄路線,距離、行進時間、配速和累計爬升,都是從實際記錄下來的點算出來的。匯出的 GPX 1.1 檔案,用的也是所有規範 GPX 檔案都遵循的同一套 UTC 約定。不管是好幾天的長途旅行,還是半天的健行,手機當下自認為在哪個時區,跟這些數字都沒有關係。TrailCam 免費下載,GPX / CSV 匯出包含在可選的 TrailCam Pro 裡。
常見問題
- 健行途中進入新的時區,記錄的行進時長會不會差一個小時?
- 不會。行進時長是從每個記錄點上那個絕對的 UTC 時間戳算出來的,不是從手機當時顯示的本地時刻算出來的,所以途中跨時區不會改變這個數字。
- 為了保證記錄準確,需要告訴 App 自己現在在哪個時區嗎?
- 不需要。不管手機的時區設定是哪一種,記錄都會一直給每個點寫絕對時間戳。所有跟時間有關的數字,都是拿這些時間戳互相比較算出來的,不是拿本地時鐘去比較的。
- 如果一趟健行跨的不是時區,而是日光節約時間切換呢?
- 道理完全一樣。日光節約時間切換只是改了貼在某個瞬間上的本地標籤,沒有改那個瞬間本身,所以對記錄時長的影響,跟跨越一條時區線基本沒什麼區別。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。