首页 新闻 会员 周边

关于时间转换多了8小时

0
悬赏园豆:10 [已解决问题] 解决于 2015-05-21 16:56

    string sDateTimeValue = "2015-05-21T15:26:00Z";

if (DateTime.TryParse(sDateTimeValue, out dTime))
{
DateTime dddd = dTime;
}

结果dddd="2015-05-21 23:26:00"

 

为什么多了8个小时?求大牛指点。

问题补充:

(⊙o⊙)…  能不能说下  怎么解决这个多8小时的问题,用什么函数?

Carl --卡尔的主页 Carl --卡尔 | 初学一级 | 园豆:69
提问于:2015-05-21 16:34
< >
分享
最佳答案
0

因为2015-05-21T15:26:00Z是UTC时间格式,你在自己机器上跑的是本地时区(UTC+8),你这样试试:DateTime dddd = dTime.ToUniversalTime();

收获园豆:7
火悬崖 | 菜鸟二级 |园豆:434 | 2015-05-21 16:41

完美解决

Carl --卡尔 | 园豆:69 (初学一级) | 2015-05-21 16:56
其他回答(2)
0

因为北京时间是+8

收获园豆:2
爱编程的大叔 | 园豆:30839 (高人七级) | 2015-05-21 16:36

(⊙o⊙)…  能不能说下  怎么解决这个多8小时的问题,用什么函数?谢谢

支持(0) 反对(0) Carl --卡尔 | 园豆:69 (初学一级) | 2015-05-21 16:38

@Carl --卡尔: 

If the time is in UTC, add a 'Z' directly after the time without a space. 'Z' is the zone designator for the zero UTC offset. "09:30 UTC" is therefore represented as "09:30Z" or "0930Z". "14:45:15 UTC" would be "14:45:15Z" or "144515Z".

UTC time is also known as 'Zulu' time, since 'Zulu' is the NATO phonetic alphabet word for 'Z'.

你这个00Z是哪儿出来的?

要解决时间地区相关的问题,应该是在Globalization这个命名空间里面。

或者通过设置地区搞定,WINDOWS里面的设置可能影响结果。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-05-21 16:41
0

有个带 DateTimeStyles 参数的 TryParse

收获园豆:1
Launcher | 园豆:45045 (高人七级) | 2015-05-21 16:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册