本地时间与格林威治时间相互转换
public static DateTime LocalTime2GreenwishTime(DateTime lacalTime)
{
TimeZone localTimeZone = System.TimeZone.CurrentTimeZone;
TimeSpan timeSpan = localTimeZone.GetUtcOffset(lacalTime);
DateTime greenwishTime = lacalTime - timeSpan;
return greenwishTime;
}
public static DateTime GreenwishTime2LocalTime(DateTime greenwishTime)
{
TimeZone localTimeZone = System.TimeZone.CurrentTimeZone;
TimeSpan timeSpan = localTimeZone.GetUtcOffset(greenwishTime);
DateTime lacalTime = greenwishTime + timeSpan;
return lacalTime;
}
PS:关于非DateTime类型的字符串格式的转换
string strDate ="Mon Aug 15 2011 00:00:00 GMT+0800";
DateTime date = DateTime.ParseExact(strDate, @"ddd MMM dd yyyy HH:mm:ss GMT+ffff", CultureInfo.CreateSpecificCulture("en-US"));
Response.Write(date.ToString());
string str="Tue Jun 11 09:30:00 UTC 0800 2013";
DateTime dt=DateTime.ParseExact(str,"ddd MMM dd HH:mm:ss 'UTC' 0800 yyyy", System.Globalization.CultureInfo.InvariantCulture);
Response.Write(date.ToString());