我正在通过xml提取日期时间值:
string time = "20150605020247+0000"
我想转换为日期时间值。我尝试使用DateTime.Parse
,ParseExact
,Convert.ToDateTime
。它不起作用,正在返回错误:
字符串未被识别为有效的日期时间
答案 0 :(得分:1)
由于您知道字符串的确切格式,因此您应该可以使用DateTime.ParseExact
。如果我们假设它是年,月,日,小时,分钟,秒和偏移量,那么您可以执行以下操作:
var result = DateTime.ParseExact("20150605020247+0000", "yyyyMMddHHmmsszzz",
CultureInfo.InvariantCulture);
答案 1 :(得分:1)
您应该这样使用DateTime.ParseExact
DateTime theTime = DateTime.ParseExact(time, "ddMMyyyyHHmmss+ffff,CultureInfo.InvariantCulture);
答案 2 :(得分:0)
您需要在ParseExact方法中使用确切的格式说明符。
DateTime.ParseExact("20150605020247+0000", "yyyyMMddHHmmsszzz", System.Globalization.CultureInfo.InvariantCulture);
提琴:https://dotnetfiddle.net/cQJ9hN
编辑:
请检查.NET世界中使用的标准DateTime格式:https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings并检查数据源,如何精确地生成字符串日期。 但是,字符串的“ + ####”部分很可能是 本地日期UTC偏移量 ,而不是时间的小数部分(如其他答案所示)。因此,通过使用“ yyyyMMddhhmmssffff”解析日期会产生错误的结果。