【发布时间】:2016-03-27 18:16:56
【问题描述】:
我正在开发一个 C#-WPF 解析器,它从文档中读取行并创建具有多个字段的对象,包括“添加日期”字段。问题:日期是非标准的西班牙语格式,我无法让 DateTime.ParseExact 工作,正如我的研究所建议的那样。这是代码:
string input = dateAddedStringSPA; //domingo 2 septiembre 2012, 23:54:20
string format = "dddd dd MMMM yyy, HH:mm:ss";
CultureInfo cultureInfo = new CultureInfo("es-ES");
DateTime dateAddedSPA;
try
{
dateAddedSPA = DateTime.ParseExact(input, format, cultureInfo);
if (dateAddedSPA == DateTime.MinValue)
{
clipping.DateAdded = DateTime.Now; /*Added this conditional workaround to avoid an exception if parsing fails (and always fails). While this doesn't work every object will have the same date: current. */
}
else
{
clipping.DateAdded = dateAddedSPA;
}
}
catch (Exception)
{
throw new Exception("Error encountered while adding date.");
}
您可以在输入旁边看到的注释是实际的字符串格式,看起来像这样。 “格式”是我试图让 DateTime 理解它,我也尝试在年后删除逗号,但仍然没有用。我不确定是不是文化导致了问题,但恐怕我的专业知识还不足以知道。问题是,解析失败,我将日期设置为 1/1/0001 12:00:00 AM。任何暗示这里可能会发生什么?
提前致谢。
【问题讨论】:
-
你想要“d”而不是“dd”——而且你可能想要“yyyy”。到那时它应该可以工作了。
-
就是乔恩,非常感谢。现在它没有读取某些日期,但至少它读取了其他一些日期,我知道我应该采取什么方向。
标签: c# wpf parsing datetime format