我在我的数据库中插入一个日期,其值来自:
s.theDate = Convert.ToDateTime("06-13-2012");
我得到错误,“字符串未被识别为有效的DateTime”。我该如何解决这个问题?
答案 0 :(得分:15)
试试这个:
DateTime.ParseExact("06-13-2012", "MM-dd-yyyy", System.Globalization.CultureInfo.InvariantCulture)
答案 1 :(得分:2)
s.theDate = DateTime.ParseExact("06-13-2012", "MM-dd-yyyy", System.Globalization.CultureInfo.InvariantCulture)
答案 2 :(得分:0)
只需使用已建议的ParseExact
或使用第二个参数填充Convert.ToDateTime
:
Convert.ToDateTime("06-13-2012", new DateTimeFormatInfo{FullDateTimePattern = "MM-dd-yyyy"});
答案 3 :(得分:0)
使用ToString
查看DateTime
类型InvariantCulture
的行为,
new DateTime(2012, 6, 13).ToString(CultureInfo.InvariantCulture)
结果:
06/13/2012 00:00:00
所以,相反,人们可以假设使用不变文化解析日期是有效的:
Convert.ToDateTime("06-13-2012", CultureInfo.InvariantCulture)
......确实如此。
话虽如此,假设日期/时间格式有点危险。我想说在考虑用户界面时,你希望格式是特定于文化的。否则,您希望格式与文化无关。尽管微软采用MM / dd / yyyy作为一种与文化无关的格式,但它是一种模糊的格式,这不是我想建立一个大型系统的东西。
答案 4 :(得分:0)
您可以(imo应该)使用名为ISO 8601的全球标准。使用此标准,这将是您最终的目标。
Convert.ToDateTime("2012-06-03");