将结果字符串datetime转换为dateTime值

时间:2019-01-14 11:24:23

标签: c# xml linq-to-xml

我正在通过xml提取日期时间值:

string time = "20150605020247+0000"

我想转换为日期时间值。我尝试使用DateTime.ParseParseExactConvert.ToDateTime。它不起作用,正在返回错误:

  

字符串未被识别为有效的日期时间

3 个答案:

答案 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”解析日期会产生错误的结果