VB6取得系統日期格式錯誤
最近碰上一個狀況,原本系統採用 VB6 做成 COM+元件來處理業務邏輯
當中無可避免的會需要使用到系統日期,最終輸出的格式應該要是【yyyy-MM-dd】的形式。
問題就在於轉換函式不清楚為何,無法正確轉換。
無法正確轉換的語法,是直接透過系統日期傳遞給 Format 處理
1 | Format(date$,"YYYY/MM/DD") |
這樣的語法在客戶端轉出來居然會是【2016-05-19】;而不是預想中的【2016/05/19】
藉由同是拚了命的通靈問 GOOGLE 大神,最終查到一篇文章可能有關係
(傳送門:VB6 的 ActiveX 组件中一个诡异的日期格式化显示的问题)
實務上去變更了系統環境的設定,結果最終也是無效的
本來已經放棄治療了,沒想到公司同仁有著絕大的恆心與毅力(心臟)
再次通靈成功,查到要去修改註冊機碼,將日期分隔符號從原本的值,變更為我們要的斜線
然後就搞定了
這邊我沒有跟他拿到他查到的資料來源,只知道解法是改機碼
但自己查了一下,似乎就是這一篇文章(傳送門:如何在 Windows 和 Windows NT 中設定的簡短日期格式)內的東西
還有一篇參考資料(傳送門:Command line tools to completely change region/input language for default user and welcome screen)
補充同事說明:除了 DEFAULT 要改之外,他也將系統其他人的身份註冊機碼也一起改了
至於那一招才對症,已經不想再用正式機來測試所以不清楚。但關鍵點就是那個 sDate 的機碼