我在前兩篇文章里分享了Global Ready的app時會遇到的不同文化的挑戰。這篇我繼續分享在時區方面的挑戰。
時間是最復雜的,最容易出錯的部分。時間復雜的最根本原因是時區問題。
首先,大家都知道,我們地球是圓的,這個意味著如果大家都想要中午12點是白天,是有太陽的時候,那就要分時區,我們國家比較簡單,大家都生活在一個時區,北京時間。但是有很多其他國家,他們有多個時區,這意味著你可以說我們在中國時間早上8點打個通過話,但是你不能說我們在美國時間8點打個電話,因為美國有很多時區。你會經常聽到什么東部時間,西部時間等等。
?
我們就拿美國為例,來具體感受一下時區,這張圖表明了美國的時區,美國主要大陸上有4個時區,單單阿拉斯加是一個時區,夏威夷是一個單獨的時區。
特別需要注意的一點是,即使在美國的一個小州里,也會有不同時區,所以,時區的劃分你無法簡單的用經緯度,或者州縣這類來劃分。需要查表。
一般大家都會認為,時區就是從-12到+12,一個小時一個時區,但是真實情況比這個復雜很多。很多時區,不一定是整數的一個個小時,比如印度的時區是5個半小時,伊朗是三個半小時。
還有更加夸張的:泥泊爾Nepal時區是是5小時45分鐘,所以如果大家把時區設計成一個整數類型,在數據庫里使用了整型來表示時區的小時數。那趕快修改設計,升級系統吧。
我們再來看一個更加夸張的時區問題。世界上有兩個國家Samoa和Tokelau(Samoa就是最新一部速度與激情里面Hobbs的家鄉,很原始很漂亮)。
Samoa和Tokelau這兩個國家沒有2011年的12月30日這一天,為什么?!?! 怎么會這樣?
原因就是這兩個國家在這個時間點改了時區,本來他們是跟著美國的時區,但是后來發現他們經常和澳大利亞,新西蘭有生意往來,大家在商務溝通上經常有誤解,比如說我們1月20日貨船把貨運到,因為時差將近20多小時,會正好相差一天,很容易搞錯,所以這兩個國家決定跟著澳洲時區,所以在切換的那一天里,就少了一天。所以你看到時區分界線很奇怪。
而且他們的時區從原來的UTC-11變成了UTC+13,注意,是+13,所以不要以為時區的范圍是-12到+12,現實情況是會超過這個范圍,而且當夏令時到來時,他們是UTC+14。
這種時區的變化,誰也不能保證以后類似的事情不會再次發生。所以大家可以想想看你的軟件系統是否準備好了,是否有能力處理這種情況。
如果大家對Teams app開發感興趣,強烈推薦中國微軟的牛人Ares陳老師最近出了一套的Teams開發系列視頻講座:Microsoft Teams開發入門和實踐 https://aka.ms/teamsdev163study?,從入門到精通Teams開發,對于準備從事或者正在從事Teams app開發的同學來說,必看!