C# 如何将格式为dd/mm/yyyy的字段转换为有效的日期时间?
我正在开发c#应用程序,它从.csv文件读取数据并填充我们的数据库 现在.csv文件包含以下格式的日期信息C# 如何将格式为dd/mm/yyyy的字段转换为有效的日期时间?,c#,sql-server,entity-framework,datetime,C#,Sql Server,Entity Framework,Datetime,我正在开发c#应用程序,它从.csv文件读取数据并填充我们的数据库 现在.csv文件包含以下格式的日期信息dd/mm/yyyy,例如22/07/2011。因此,当我尝试使用ado.net实体框架在数据库中添加此值时:- TextFieldParser parser = new TextFieldParser(@"C:\csv\file01.csv"); parser.TextFieldType = FieldType.Delimited; parser.SetDelimiters(",");
dd/mm/yyyy
,例如22/07/2011
。因此,当我尝试使用ado.net实体框架在数据库中添加此值时:-
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]);
我得到了以下例外:-
字符串未被识别为有效的日期时间
那么,有谁能给我一些建议吗?我如何在数据库中添加以下格式的日期?试试:
这基本上告诉解析器所期望的格式
请注意,它是MM
而不是MM
,因为一个是月,另一个是分钟。试试:
这基本上告诉解析器所期望的格式
请注意,它是
MM
而不是MM
,因为一个是月,另一个是分钟。感谢您的回复,但在我的情况下,CSVfield[49]可能是空的,因此ParseExact将引发异常。。。在调用ParseExact()之前,是否需要检查字符串是否为空?或者我可以在不检查的情况下处理此问题?是的,您必须检查它是否为空。感谢您的回复,,但在我的情况下,CSVfield[49]可能为空,因此ParseExact将引发异常。。。在调用ParseExact()之前,是否需要检查字符串是否为空?或者我可以不用检查就处理这个问题?是的,你必须检查它是否为空。你的CurrentCulture
是什么?@SonerGönül我读取的日期存储在.csv中。。。你是说数据库的文化?如果是,那么我有美国英语你的当前文化是什么?@SonerGönül我正在阅读的日期存储在.csv中。。。你是说数据库的文化?如果是的话,那么我有我们的英语
var result = DateTime.ParseExact(
dateString,
"dd/MM/yyyy",
CultureInfo.InvariantCulture
);