【发布时间】:2017-01-04 14:59:21
【问题描述】:
我在 CSV 文件中有一个日期时间值,下面是示例数据:
20/06/2016 11:52
21/06/2016 11:52
22/06/2016 11:52
当我尝试解析这个日期时间时,我得到了错误:
字符串未被识别为有效的日期时间。
我不确定这个日期的格式是什么,但我总是希望在我的应用程序将使用的文化中解析它。因此,根据当前的文化,我想解析我的日期。
这就是我尝试的方式,但出现上述错误:
string row = "20/06/2016 11:52"
试一试:
CultureInfo culture = CultureInfo.CurrentCulture;
DateTimeStyles styles = DateTimeStyles.None;
DateTime dateValue;
DateTime.TryParse(rowValue, culture, styles, out dateValue); // {1/1/0001 12:00:00 AM}
试试 2
DateTimeFormatInfo usDtfi = new CultureInfo(culture.Name, false).DateTimeFormat;
var l = Convert.ToDateTime(rowValue, usDtfi); //String was not recognized as a valid DateTime
var g = DateTime.Parse(rowValue, usDtfi);//String was not recognized as a valid DateTime
以上所有这些方法都失败了,我想知道确切的日期并希望将其存储在我的 SQL Server 数据库表中。
我的系统日期时间格式为:mm/dd/yy
我已经看到了一些类似下面的问题:
String was not recognized as a valid DateTime " format dd/MM/yyyy"
Datetime format Issue: String was not recognized as a valid DateTime
但所有这些答案都指定了日期格式,但我不知道格式是什么;这就是为什么我试图从当前的文化中发现。我不确定我的想法是否正确。
【问题讨论】:
-
可能是因为没有秒数。使用 TryParseExact
-
您解析的日期是否以各种格式存储在文件中?所以你可以在文件中有多个日期,每个日期都有不同的格式?
-
看看下面这个方法,它支持多种日期格式进行解析。 DateTime.ParseExact 方法(String, String[], IFormatProvider, DateTimeStyles)msdn.microsoft.com/en-us/library/332de853(v=vs.110).aspx
-
@Rabid penguin:是的,日期可以有多种格式,所以我希望根据我当前的文化存储日期时间