How to Convert a field with the following format dd/mm/yyyy into a valid datetime?
我正在开发C应用程序,它从.csv文件中读取数据并填充我们的数据库。
现在.csv文件包含以下格式的日期信息:dd/mm/yyyy,如22/07/2011。因此,当我尝试使用ADO.NET实体框架在数据库中添加此值时:
1 2 3 4 5 6 7 8 9 10
| TextFieldParser parser = new TextFieldParser (@"C:\csv\file01.csv");
parser .TextFieldType = FieldType .Delimited;
parser .SetDelimiters(",");
while (!parser .EndOfData)
{
Employee DBrecord = new Employee ();
DBrecord .LeavingDate = DateTime .Parse(CSVfields [49]); |
我有以下例外情况:
String was not recognized as a valid DateTime.
号
那么,有人能就此提出建议吗?我怎样才能在数据库中添加以下格式的日期:dd/mm/yyyy?
- 你的CurrentCulture是什么?
- @sonerg&246;n&252;l我阅读的日期存储在.csv中…你是说数据库的文化?如果是的话,那我就让我们用英语
DateTime.ParseExact()试试:
1 2 3 4 5
| var result = DateTime.ParseExact(
dateString,
"dd/MM/yyyy",
CultureInfo.InvariantCulture
); |
这基本上是对预期的格式告诉解析器。
请注意,这是不是一个MMMM是一个月,另一分钟。
- 感谢您的回复,但在我的例子中,csvfield[49]可能是空的,因此parseExact将引发异常…在调用parseExact()之前,是否需要检查字符串是否为空?或者我可以不用支票来处理这个?
- 是的,你得检查一下它是否是空的。