2009-07-13 24 views
3

有沒有辦法將.NET應用程序的TimeZone設置爲操作系統的TimeZone以外的值?設置/更改.NET應用程序的TimeZone

例如,我正在中央標準時間設置的操作系統上使用我的應用程序,我希望應用程序的行爲與在東部標準時間一樣,而不必在應用程序中手動轉換所有日期時間。方法如 TimeZoneInfo.ConvertTimeBySystemTimeZoneId()

回答

5

不,我不相信有這樣做的任何方式。這不像時區是像文化那樣在每個線程的基礎上設置的。例如,我相信DateTime.ToLocalTime將總是使用系統時區

但是,我不會使用TimeZoneInfo.ConvertTimeBySystemTimeZoneId無處不在。我會公開一個代表適當時區的TimeZoneInfo類型的屬性 - 或者設置一個幫助類來轉換你需要的地方。

根據您的應用程序,你可能會發現,如果你選擇合適的點,這將數據轉換(其中不是總是隻是保持它到處UTC除了UI層的情況下),你沒有像您期望的那樣執行儘可能多的轉換。

+0

我們最終將TimeZoneInfo.ConvertTimeBySystemTimeZoneId抽象爲其中一個DateTime幫助器類,因此我們不需要在代碼中的任何地方公開「東部標準時間」常量 – 2009-07-23 13:23:21

相關問題