2011-05-27 83 views
2

希望大家都在享受自己。如何將美國的DateTime.Now轉換爲英國當地時間?

我的應用程序在美國的服務器上運行,它使用以下代碼來選擇日期和時間。

var pickUpTime = DateTime.Now.ToShortTimeString(); 

我想要的是這個字符串應該花英國時間而不是美國時間。

你能分享你的經驗嗎?

最好的問候, 阿卜杜拉

+0

即使您調整時區,它仍然基於您的系統時鐘,聽起來並不像您想要的那樣。發佈您的代碼。 – 2011-05-27 11:23:10

+0

我假設你想要的是當前在英國的當地時間。然而,在冬季這段時間​​恰好與UTC相同,你將得到答案,告訴你如何轉換爲UTC。你有沒有問過如何讓北京當地的時間不會發生? – 2011-05-27 12:10:02

回答

1

,你可以把它轉換成GMT,然後到任何你想要的。

Getting current GMT time

+0

您鏈接的問題實際上是如何__not__使用'DateTime.Now'。但是,最高評分答案基本上是使用'DateTime.UtcNow',它不考慮夏令時。 – 2011-05-27 12:07:36

+0

@Martin,同意了。我只是想說明一下傢伙;) - 但你的回答更重要。謝謝。 – Illuminati 2011-05-27 12:19:52

1

DateTime.UtcNow應該這樣做 MSDN

+0

-1:它不會。目前的英國時間是英國夏令時(BST),這是UTC/GMT之前一小時。 – Richard 2011-05-27 11:36:34

7

您可以使用此代碼的時間轉換:

var now = DateTime.UtcNow; 
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"); 
var britishLocalTime = TimeZoneInfo.ConvertTime(now, timeZoneInfo); 

該代碼將佔到夏令時。

如果您想使用其他時區,您可以使用TimeZoneInfo.GetSystemTimeZones()獲取所有時區並選擇一個您需要的時區。在我的系統上,它返回91個元素。

+0

非常感謝Martin – 2011-05-27 13:39:56

+0

+1同意。使用'UtcNow'獲得基準時間,然後從那裏抵消它。 @AbdullahSaqib你應該開始接受答案。 – 2012-02-14 01:58:16

相關問題