C# DateTime.ParseExact-带时区偏移的iso8601
我尝试将字符串日期转换为日期时间。我知道我的字符串是ISO8601格式,带有偏移时区 我试试这个:C# DateTime.ParseExact-带时区偏移的iso8601,c#,datetime,iso8601,C#,Datetime,Iso8601,我尝试将字符串日期转换为日期时间。我知道我的字符串是ISO8601格式,带有偏移时区 我试试这个: DateTime date = DateTime.ParseExact(strDate,"yyyy-MM-dd'T'HH:mm:sszzz", CultureInfo.InvariantCulture); 但它并非在所有情况下都有效 它对负偏移有效:2013-12-11T14:36:00-01:00 对于正偏移量,它不起作用(捕捉异常):2013-12-11T14:36:00+01:00 我是否
DateTime date = DateTime.ParseExact(strDate,"yyyy-MM-dd'T'HH:mm:sszzz", CultureInfo.InvariantCulture);
但它并非在所有情况下都有效
它对负偏移有效:2013-12-11T14:36:00-01:00
对于正偏移量,它不起作用(捕捉异常):2013-12-11T14:36:00+01:00
我是否以正确的方式使用DateTime.ParseExact
谢谢您的帮助。您提供的字符串在没有任何格式规范的情况下适用于我
DateTime d = DateTime.Parse("2013-12-11T14:36:00+01:00");
Debug.Print(d.ToString());
Debug.Print(d.ToUniversalTime().ToString());
您可以看到,在后一种打印中,它打印的时间为负1小时,正如您指定的+1小时时区。Argh,我没有对我的字符“+”进行url编码:
它由REST web服务使用,因此当我发送2013-12-11T14:36:00%2B01:00时,它可以工作 你确定吗?两者对我都有效。