C# 为什么会引发System.FormatException:字符串未被识别为有效的日期时间

C# 为什么会引发System.FormatException:字符串未被识别为有效的日期时间,c#,exception,formatexception,C#,Exception,Formatexception,为什么会这样: Convert.ToDateTime("08/31/2017") 引发System.FormatException,但不引发此异常: Convert.ToDateTime("09/12/2017") 如果您需要更多信息,请询问,我将更新或评论。我不知道是什么原因导致了这个问题,所以我不知道您需要什么详细信息。您的计算机上此日期格式的默认顺序是天/月/年,因为31不是有效的月份,它会失败。如果您想要此订单,您需要提供其格式: var x = DateTime.ParseExac

为什么会这样:

Convert.ToDateTime("08/31/2017")
引发System.FormatException,但不引发此异常:

Convert.ToDateTime("09/12/2017")

如果您需要更多信息,请询问,我将更新或评论。我不知道是什么原因导致了这个问题,所以我不知道您需要什么详细信息。

您的计算机上此日期格式的默认顺序是天/月/年,因为31不是有效的月份,它会失败。如果您想要此订单,您需要提供其格式:

var x = DateTime.ParseExact("08/31/2017", "MM/dd/yyyy",CultureInfo.InvariantCulture);

计算机区域性上此日期格式的默认顺序为天/月/年,因为31不是有效的月份,它会失败。如果您想要此订单,您需要提供其格式:

var x = DateTime.ParseExact("08/31/2017", "MM/dd/yyyy",CultureInfo.InvariantCulture);

可能是因为它将日期解释为先天后月。您需要使用DateTime.ParseExacture,因为除非您指定自定义格式,否则美国的日期书写方式无效。很可能是因为第二个日期被解释为第12个月的第9天(2017年12月12日,有效日期),而第一个日期被解释为第31个月的第8天,2017年,没有第31个月。可能是因为它将日期解释为先天后月。您需要使用DateTime.ParseExacture,因为除非您指定自定义格式,否则美国的日期书写方式无效。很可能是因为第二个日期被解释为第12个月的第9天(2017年12月12日,有效日期),而第一个日期被解释为第31个月的第8天,2017年,没有第31个月。尝试一下。现在开始工作。谢谢你,现在就开始工作。谢谢