我是ASP.NET和C#的新手。 我想知道如何将一个字段从字符串转换为DataTime。
string[] Lines = File.ReadAllLines(fileName);
string[] Fields;
//Remove Header line
Lines = Lines.Skip(1).ToArray();
List<CountTable> emList = new List<CountTable>();
foreach (var line in Lines)
{
Fields = line.Split(new char[] { ',' });
emList.Add(
new CountTable
{
CountID = Fields[0].Replace("\"", ""),
Date = Fields[1].Replace("\"", ""),
UserID = Fields[2].Replace("\"", ""),
PrinterID = Fields[3].Replace("\"", ""),
Color = Fields[4].Replace("\"", ""),
BW = Fields[5].Replace("\"", ""),
});
}
我收到了这个错误
无法将类型'string'隐式转换为'System.DateTime'
在这一行
Date = Fields[1].Replace("\"", ""),
任何人都可以帮我解决错误的语法。
谢谢!
答案 0 :(得分:1)
您是否尝试将字符串转换为DateTime对象?
见下面的代码:
string[] Lines = File.ReadAllLines(fileName); string[] Fields;
//Remove Header line
Lines = Lines.Skip(1).ToArray();
List<CountTable> emList = new List<CountTable>();
foreach (var line in Lines)
{
Fields = line.Split(new char[] { ',' });
emList.Add(
new CountTable
{
CountID = Fields[0].Replace("\"", ""),
Date = Convert.ToDateTime(Fields[1].Replace("\"", "")),
UserID = Fields[2].Replace("\"", ""),
PrinterID = Fields[3].Replace("\"", ""),
Color = Fields[4].Replace("\"", ""),
BW = Fields[5].Replace("\"", ""),
});
}
答案 1 :(得分:1)
string
无法隐式转换为DateTime
。您必须使用DateTime.Parse()
将string
明确转换为DateTime
。
Date = DateTime.Parse(Fields[1].Replace("\"", ""))
答案 2 :(得分:0)
您必须明确地将string
转换为DateTime
。我建议使用DateTime.ParseExact Method。这一行
Date = Fields[1].Replace("\"", ""),
应更改为此
Date = DateTime.ParseExact(Fields[1].Replace("\"", ""), "MM/dd/yyyy", null),
请注意,使用上面的代码我会假设文件中的日期为MM/dd/yyyy
格式,即02/20/2014
。如果它有其他格式,则必须将"MM/dd/yyyy"
更改为其他格式。