我需要知道如何将GMT时区格式的日期时间转换为其他格式,如东部,太平洋,山地和印度.. c#,asp.net2.0和dot net frame work 2.0中的时区格式。< / p>
先谢谢
鲁帕。
答案 0 :(得分:2)
不幸的是,使用.NET 2.0大部分都是填充的。您需要使用P / Invoke来创建TimeZone
类的实例。从.NET 3.5开始,它会更好 - TimeZoneInfo
允许您获取非本地区域。我似乎记得后者对历史时区信息的支持也更好,而不仅仅是DST改变时的一对规则。
您可以使用GetTimeZoneInformation获取信息,但这相对比较难看。可能有一些方法使用P / Invoke来为你进行转换...虽然它仍然可能很毛茸茸。
使用.NET 2.0的要求有多坚定?使用.NET 3.5,你可以省去一个很多的麻烦......
答案 1 :(得分:1)
真的,你想要.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。
答案 2 :(得分:0)
编写如下方法,因此可以通过调用轻松转换。 它用于印度标准时间
public DateTime IndianStandard(DateTime currentDate)
{
TimeZoneInfo mountain = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
DateTime utc = currentDate;
return TimeZoneInfo.ConvertTimeFromUtc(utc, mountain);
}