我尝试将字符串日期转换为DateTime。我知道我的字符串是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.ParseExact?
感谢您的帮助。
答案 0 :(得分:1)
您提供的字符串适用于我,没有任何格式规范。
DateTime d = DateTime.Parse("2013-12-11T14:36:00+01:00");
Debug.Print(d.ToString());
Debug.Print(d.ToUniversalTime().ToString());
您会看到,在后一个“打印”中,它打印减去1小时,因为您指定了+ 1小时时区。
答案 1 :(得分:0)
唉,我没有对我的字符'+'进行网址编码......:S
它由REST Web服务使用,因此当我发送 2013-12-11T14:36:00%2B01:00 时,它可以工作..!