objDR [“ sidate”]。ToString()的日期格式为“ 01-17-78”,其中objDR是数据行。 当我执行以下操作时:
Convert.ToDateTime(objDR["sidate"].ToString())
我收到一个System.Format异常。 可能是什么原因造成的?
编辑: 现在没有异常。请参阅标记答案。只是一个问题:中间使用的“ MM-dd-yy”是用于将日期从一种格式转换为另一种格式,还是用于其他目的?因为我将其更改为“ M-d-yy”,但格式没有更改。
答案 0 :(得分:4)
您必须提供日期格式。
试试这个
DateTime dt = DateTime.ParseExact("01-17-78", "MM-dd-yy", CultureInfo.InvariantCulture);
答案 1 :(得分:1)
Convert.ToDateTime()
方法考虑了您当前的区域性,为了使用该方法,您必须确保要传递给该方法的DateTime的格式与当前区域性的格式相同。
否则,您可以执行以下操作:
var date = DateTime.Parse(objDR["sidate"].ToString(),CultureInfo.InvariantCulture);
另一种解决方案是使用DateTime.ParseExact()
方法:
DateTime dt = DateTime.ParseExact(objDR["sidate"].ToString(), "MM-dd-yy", CultureInfo.InvariantCulture);
在MSDN中从 Link到DateTime
结构。
在MSDN中从Link到DateTime.Parse(String, IFormatProvider)
方法重载。
从Link到MSDN中的Convert.ToDateTime()
方法。
Link到MSDN上的DateTime.ParseExact()
方法。
答案 2 :(得分:0)
问题是您当前的文化。 Convert.ToDateTime使用当前区域性来确定remakrs的转换格式see。
但是一种解决方案是使用
DateTime.Parse(objDR["sidate"].ToString(), CultureInfo.InvariantCulture)
,这样就可以赋予程序员这种文化。