关于时间差值的问题
string value = "Wed Jan 06 17:08:03 +0000 2010";
中的+0000估计是时区信息
UTC: Universal Time Coordinated 协调世界时,又称世界标准时间
GMT: Greenwich Mean Time 格林尼治平均时
UTC和GMT都与英国伦敦的本地时相同。
时区:全球24个时区,把以伦敦为中心的世界地图展开,UTC和GMT的伦敦是0区,伦敦的右边直到新西兰的东部不远的斐济为东区,而左边到太平洋中间为 西区。一般用5位时区差来表示与UTC相差的小时数,东区为正,西区为负。如北京时区是东八区,领先UTC八个小时,记为 +0800;纽约的时区是西五区,比UTC落后五个小时,记为 -0500。
UTC + 时区差 = 本地时间
所以:UTC = 北京时间 - 0800 ,即 北京时间= UTC+0800,
所以时区时间差为:此处就是(+0000/100+8) 小时,即8小时转换程序如下:
C# codestring value="Wed Jan 06 17:08:03 +0000 2010";//分割出年、月、日、分、秒、时、星期string[] date=value.Split(newchar[] {'',':'},StringSplitOptions.RemoveEmptyEntries);//生成本地日期字符串格式,GMT代表根据本地时 区日期计算string datestr=string.Format("{0}, {1} {2} {3} {4}:{5}:{6} GMT", date[0], date[2], date[1], date[7], date[3], date[4], date[5]);
DateTime dtt= Convert.ToDateTime(datestr);//转换成本地日期//实际日期就出来了,是 星期四, 2010-01-07 01:08:03
下面计算当前用户所在时区时间,与该时间相差的数值:
C# code//接上面DateTime now= DateTime.Now;
TimeSpan ts= (TimeSpan)now.Subtract(dtt);int xday= ts.Days;//获取相差天数int xhour= ts.Hours;//相差小时int xmin= ts.Minutes;//相差分钟int xsec= ts.Seconds;//相差秒数//相差时间结果string xTime=string.Format("时间相差{0}天{1}小时{2}分{3}秒",xday,xhour,xmin,xsec);