繁体   English   中英

获取system.formatexception

[英]Getting system.formatexception

即时通讯收到错误消息,指出字符串未被识别为有效的日期时间。

说明:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

异常详细信息: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;
    }

您收到错误消息,因为您的字符串格式无效。

在您的代码示例中, validFrom应该是实际值,而不是日期格式字符串。 您收到错误消息是因为无法将“ dd / MM / YYYY”解析为“ dd / MM / yyyy”。 可以将“ 23/10/2016”解析为“ dd / MM / yyyy”。

这是解析日期的代码片段:

  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);
  }

要了解有关解析日期的更多信息,请访问https://msdn.microsoft.com/zh-cn/library/w2sa9yss(v=vs.110).aspx

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM