Convert string “2017-01-01T12:00:33:123456Z+02” to DateTime
本问题已经有最佳答案,请猛点这里访问。
我试图将从客户那里得到的这个字符串转换为日期时间,并将其存储在我的数据库中。
我试了几次批准,但没有什么效果。我需要UTC时间的偏移量,所以我想我需要对zz做些什么。
这是有效的:
1 2 3 | string test ="2008-06-11T16:11:20.0904778Z"; DateTime publishingTimeStamp = DateTime.ParseExact(test,"o", CultureInfo.InvariantCulture, DateTimeStyles.None); |
但是客户的字符串有点不同,所以我尝试了这个:
1 2 | string test ="2017-01-01T12:00:33:123456Z+02"; DateTime publishingTimeStamp = DateTime.ParseExact(test,"yyyy-MM-dd'T'HH:mm:ss:ffffffzz", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None); |
不幸的是,它不起作用。如何转换准确的字符串"2016-01-01T10:00:55:123456Z+02"?是否可能,因为它在ffffff前面使用":"
谢谢你
看起来您忘记了将
1 2 3 4 5 | string test ="2017-01-01T12:00:33:123456Z+02"; DateTime publishingTimeStamp = DateTime.ParseExact(test, "yyyy-MM-dd'T'HH:mm:ss:ffffff'Z'zz", CultureInfo.InvariantCulture, DateTimeStyles.None); Console.WriteLine(publishingTimeStamp); // 01.01.2017 12:00:33 |
但由于您的字符串具有UTC偏移值,所以我将把它解析为
1 2 3 4 5 | string test ="2017-01-01T12:00:33:123456Z+02"; DateTimeOffset publishingTimeStamp = DateTimeOffset.ParseExact(test, "yyyy-MM-dd'T'HH:mm:ss:ffffff'Z'zz", CultureInfo.InvariantCulture, DateTimeStyles.None); |
现在你有一个