明仁天皇(前排左二)將在西元2019年也就是平成31年退位

圖片來源: 

Wiki

日本明仁天皇預計將在2019年4月30日退位,用了30年的「平成年號」也將換新,不過,微軟提醒,這可能引發當時西元2000年千禧蟲(Y2K)的問題。因此微軟也在Windows 10春季釋出的更新中,內建了在2019年5月1日的時代轉換占位符,當日本政府正式公告下一任繼位天皇紀年名稱,就會以更新的方式更換占位符,微軟提到,如因為時代轉換占位符造成應用程式失效,可以暫時先將該值從註冊表中移除。

由於日本現在仍使用年號紀年法,天皇在位期間使用單一年號,像是1989年明仁天皇上位便是平成元年,雖然隨著日本與國際交流增加,不少應用程式紀年改用西元,但在貨幣或是公文等許多部分,仍使用天皇年號紀年。而明仁天皇預計將在2019年4月30日退位,微軟表示,這代表一個新時代(紀元)的開始,由於是很罕見的事件,所以大部分的開發者沒有預期應用程式會跨時代運作,因此也沒有為此進行過測試。

過去曾經發生過類似的事件,那就是西元紀年的千禧蟲事件,由於之前多數系統以兩位數字代表年分,像是1999年便會記作99,因此當2000年這兩位數跳回成00時,電腦系統便會以為是1900年,導致部份應用程式發生問題。微軟提到,即便千禧蟲問題早在2000年的前幾年就已經被預期且也已經開始著手解決,但是部分組織仍然在千禧年過渡時遇到問題。

在時代改變後才開始測試相容性問題,就已經為時已晚了,因此微軟這次在Windows 10春季釋出的更新中,在註冊表項中增加了時代轉換占位符資訊,來提醒用戶發現新時代轉換時,可能為應用程式帶來的問題與限制,確保當時代真正轉換時,應用程式仍可以正常運作。

微軟提醒了幾項紀元轉換可能在日期計算上發生的問題,首先,日曆可能預設當前只有一個時代,因此要瀏覽跨不同天皇的紀年可能發生問題。第二、應用程式可能會儲存未來的日期,並在之後對該日期進行解析後使用,而在紀年改變後,這些儲存的日期可能會被系統誤解成過去的時間。第三,年號與年份數字的組合可能會混淆日期計算,像是舊時代的第40年,可能是新時代的第10年。第四點則是接續第三點,不同紀元可能難以比較日期,像是舊時代第32年可能與新時代第2年相等

第五點、日曆可能需要特別描述日期屬於的紀元,特別是紀元在數個月或是一個月內變化。最後,部分應用程式可能預設公曆(格里曆)年對應一個年號紀年,而在2019年將面臨同時存在兩個天皇紀年的情況。

微軟表示,開發者如果遇到因為時代轉換占位符,造成應用程式執行問題,可以透過修改註冊表來修正這個問題,其位置在於Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras中,把該項的值2019 05 01移除或是修改即可。

不過,微軟認為,即便刪除了這個值也不應該忽略這個問題,因為紀年轉換遲早會到來。而微軟也會在日本政府公告最終紀元名稱時,以更新的方式把時代轉換占位符替換成紀元名稱。


Advertisement

更多 iThome相關內容