获取system.formatexception

时间:2017-01-25 06:10:34

标签: c# datetime

我收到了一个错误 字符串未被识别为有效的日期时间。

  

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:System.FormateException:无法识别字符串   作为有效的日期时间。

这是我得到例外的地方:

string validFrom="dd/MM/yyyy";
    {
        lstExchangeRates.Add(new KangoGiftRepository.Orm.ExchangeRate(1, cell.Value.ToString(), decimal.Parse(importSheet.Cells[startRow, 2].Value.ToString()), DateTime.ParseExact(validFrom, "dd/MM/yyyy", null)));
        startRow++; cell = importSheet.Cells[startRow, 1];
        valid = cell?.Value != null && cell.Value.ToString().Length == 3;
    }

1 个答案:

答案 0 :(得分:1)

您收到错误是因为您的字符串不是有效的日期格式。

在您的代码示例中, string[] dateValues = { "30-12-2011", "12-30-2011", "30-12-11", "12-30-11" }; string pattern = "MM-dd-yy"; DateTime parsedDate; foreach (var dateValue in dateValues) { if (DateTime.TryParseExact(dateValue, pattern, null, DateTimeStyles.None, out parsedDate)) Console.WriteLine("Converted '{0}' to {1:d}.", dateValue, parsedDate); else Console.WriteLine("Unable to convert '{0}' to a date and time.", dateValue); } 应该是实际值,而不是日期格式字符串。您收到错误的原因是' dd / MM / YYYY'无法解析为&#dd / MM / yyyy'。 &#39 23/10/2016年'可以解析为&#dd / MM / yyyy'。

以下是解析日期的代码段:

 var geoXml = new geoXML3.parser({
                        map: map           
                    });

    geoXml.parse('file.kml');

要了解有关解析日期的详情,请访问https://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx

要了解有效的格式字符串,请访问https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx