摘要:vb6 與C# .net 的DateTime,發生於VB6呼叫web service傳入DateTime
因為新舊系統的過渡期間,vb6去用了一些web service。有一隻function其中一個參數是日期(DateTime)變數。
結果很神奇的我用.net程式call跟用VB6 call結果不對!
經比較後發現: vb6送2009/12/16進來,到了.net 接到卻變成2009/12/15 16:00:00。
少了8小時~ 為什麼是8小時呢?
有沒有很熟析的感覺! 正好跟台灣在+8時區有關。
原來.net 的DateTime有一個 kind 屬性,指定是本地時間或是UTC時間(Coordinated Universal Time )。
看來應該是這裡出錯。不過好家在時間還是對的,只是形式錯了,在function一開始就先加一句
date = date.ToLocalTime();
統一使用當地時間,之後就OK了。
當然還有一個解法是把日期型態改成字串,不過字串就鬆散的多,比較不喜歡。既然是日期就用DateTime就好。