将字符串解析为自定义日期格式C#

时间:2019-01-19 11:34:39

标签: c# datetime parsing

我在将字符串解析为正确的DateTime时遇到麻烦。我知道DateTime.ParseExact,但我不断提出异常。我在这里想念什么?

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;
        });

捕获消息为

  

20110102 170100格式不正确。

编辑:链接到助手要求的错误屏幕截图(因此,请勿让新帐户添加图像)。 enter image description here

1 个答案:

答案 0 :(得分:0)

该代码有效。您必须读取其他数据:

const string formatString = "yyyyMMdd HHmmss";
static void Main(string[] args)
{
    string input = "20110102 170100";
    DateTime Bar = DateTime.ParseExact(input, formatString, CultureInfo.InvariantCulture, DateTimeStyles.None);
}