我正在清理大型代碼庫中沒有人關注本地時間與UTC時間的問題。替代ASP.NET WebMethod參數的DateTime序列化
我們想要的是一種全局忽略發送到和來自ASP.NET Web服務的DateTime對象的時區信息的方法。我有一個檢索操作的解決方案。數據僅在數據集中返回,我可以查找DateTime列並將DateTimeMode設置爲Unspecified。這解決了我在數據集內傳遞的所有數據的問題。
但是,DateTime對象通常也直接作爲參數傳遞給Web方法。我想刪除任何傳入的時區信息。我不想通過我們的客戶端代碼進行搜索,而是使用DateTime.SpecifyKind(..)將所有的DateTime變量設置爲Undefined,我想做一些全局ASP.NET覆蓋來監視傳入的參數並去掉時區信息。
這樣的事情可能嗎?還是有另一種更簡單的方法來做我想做的事情?
只是重申 - 我不在乎時區,每個人都在同一個時區。但是有幾個用戶的機器配置錯誤,時區錯誤等等。因此,當他們在2008年7月1日發送時,我將在服務器端獲得2008年6月30日22:00:00,它會自動將其從它們的轉換中本地時間到服務器的本地時間。
更新:另一種可能性是,如果可以在客戶端.NET代碼上進行更改,以改變Kind'Undefined'的DateTime對象被序列化的方式。
不,我們想剝離時區信息。我們無法訪問客戶端安裝,由於許多不同的應用程序訪問數據,我們無法將預先存在的數據庫數據更改爲UTC時間。如果有人從日期選擇項目中選擇7月1日,我們不能在6月30日前將其發送到服務器。 – Clyde 2008-12-01 20:17:00
但這並不需要反對票。答案在問題範圍內是合理的(問題沒有指定限制)。 – 2008-12-02 22:57:50