2010-05-10 21 views

回答

1

您的服務器位於加州?如果是,則DateTime.Now將返回當前時區中的當前時間。

如果沒有,您可以硬編碼從加利福尼亞州的UTC的偏移量,並使用DateTime.UtcNow.AddHours(offset)或者您可以使用數據庫,如tz database這將有助於自動調整夏令時等。

還有在.NET 3.5中引入的TimeZoneInfo類,它允許您枚舉安裝到窗口中的時區信息。你也應該可以從中計算出來。

2
TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); 
DateTime pacificTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, pacificZone); 

這樣做的好處是它不依賴於服務器當前設置的時區。

+0

是不是有一種方法返回DateTimeOffset?這將是更好的國際海事組織。我的解決方案(刪除)不起作用:-( – dtb 2010-05-10 01:49:57

+0

@dtb,爲什麼我們需要明確獲得偏移量?他說他想輸出實際時間。 – 2010-05-10 01:59:19

+0

+1。Nice。TimeZoneInfo是.NET 3.5中的新增功能。 – Steven 2010-05-10 08:38:08

相關問題