我需要知道如何將GMT時區格式的日期時間轉換爲其他格式,如東部,太平洋,山區和印度。 。c#中的時區格式,asp.net2.0和dot net frame work 2.0。將日期時間從GMT轉換爲其他(東部,山區,太平洋,印度,..)格式
在此先感謝
Rupa。
我需要知道如何將GMT時區格式的日期時間轉換爲其他格式,如東部,太平洋,山區和印度。 。c#中的時區格式,asp.net2.0和dot net frame work 2.0。將日期時間從GMT轉換爲其他(東部,山區,太平洋,印度,..)格式
在此先感謝
Rupa。
真的,你想爲這個.NET 3.5 ...
(我知道你問到.NET 2.0,但是這回答可能會有人在將來尋找這個話題)
TimeZoneInfo mountain = TimeZoneInfo.FindSystemTimeZoneById(
"US Mountain Standard Time");
DateTime utc = DateTime.UtcNow;
DateTime local = TimeZoneInfo.ConvertTimeFromUtc(utc, mountain);
在那之前...疼痛。您可以維護自己的偏移量列表,但是您必須擔心DST。
不幸的是,使用.NET 2.0時,你大部分都被塞進了內存中。您需要使用P/Invoke來創建TimeZone
類的實例。從.NET 3.5開始,它好得多 - TimeZoneInfo
允許您獲取非本地區域。我似乎記得後者對歷史時區信息也提供了更好的支持,而不僅僅是當DST發生變化時的一對規則。
您可以使用GetTimeZoneInformation獲得信息,但這相對難看。可能有一些方法可以使用P/Invoke來爲您進行轉換...雖然它仍然可能很毛茸茸。
要求使用.NET 2.0有多堅定?你會保存自己很多使用.net 3.5麻煩 ...
寫下面的方法,所以可以通過調用它來輕鬆轉換。 它爲印度標準時間
public DateTime IndianStandard(DateTime currentDate)
{
TimeZoneInfo mountain = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
DateTime utc = currentDate;
return TimeZoneInfo.ConvertTimeFromUtc(utc, mountain);
}
這裏看看http://stackoverflow.com/questions/1108644/c-making-sure-datetime-now-returns-a-gmt-1-time/1108670# 1108670 – ThePower 2009-08-10 11:05:55