将字符串解析为自定义日期格式c#
我无法将字符串解析为正确的日期时间。我知道DateTime.ParseExact,但我不断引发异常。我错过了什么将字符串解析为自定义日期格式c#,c#,datetime,parsing,C#,Datetime,Parsing,我无法将字符串解析为正确的日期时间。我知道DateTime.ParseExact,但我不断引发异常。我错过了什么 const string formatString = "yyyyMMdd HHmmss"; const string fileName = @"C:\path.csv"; IEnumerable<Foo> dtos = File.ReadAllLines(fileName) .Skip(1) .Select(line => new
const string formatString = "yyyyMMdd HHmmss";
const string fileName = @"C:\path.csv";
IEnumerable<Foo> dtos = File.ReadAllLines(fileName)
.Skip(1)
.Select(line => new {line, columns = line.Split(';')})
.Select(t =>
{
try
{
return new Foo
{
Bar = DateTime.ParseExact(t.columns[0], formatString, CultureInfo.InvariantCulture, DateTimeStyles.None)
};
}
catch (FormatException)
{
Console.WriteLine("{0} is not in the correct format.", t.columns[0])
}
return null;
});
常量字符串formatString=“yyyyMMdd HHmmss”;
常量字符串文件名=@“C:\path.csv”;
IEnumerable dtos=File.ReadAllLines(文件名)
.Skip(1)
.Select(line=>new{line,columns=line.Split(“;”)})
.选择(t=>
{
尝试
{
返回新Foo
{
Bar=DateTime.ParseExact(t.columns[0],formatString,CultureInfo.InvariantCulture,DateTimeStyles.None)
};
}
捕获(格式化异常)
{
Console.WriteLine(“{0}的格式不正确。”,t.columns[0])
}
返回null;
});
捕获消息是
20110102 170100的格式不正确
编辑:链接到助手要求的错误截图(所以不要让新帐户添加图像)。
代码有效。您必须读取不同的数据:
const string formatString = "yyyyMMdd HHmmss";
static void Main(string[] args)
{
string input = "20110102 170100";
DateTime Bar = DateTime.ParseExact(input, formatString, CultureInfo.InvariantCulture, DateTimeStyles.None);
}
捕获的消息中显示了t.columns[0]的值。
我认为它不是您认为的值。看见代码显然与该值一起工作,因此如果它对您不起作用,则不可能是该值代码>。你猜怎么着,它确实起作用了。尝试修剪你的t.Columns[0]
,可能它有一些不需要的空白。@mjwills我确实编辑过它。问题似乎是双重属性,而不是dateTime属性。谢谢你的回答。下次,最好展示你的全部代码。通过不显示您也在分析的双精度值,我们(包括您)认为日期格式是问题所在。@PaulKaram是的,我的错,我试图显示最小的示例,这就是为什么我忽略了其他属性,因为我认为它们与手头的问题无关。善意执行得不好。双解析中的不变区域性解决了我的问题。