C#CSV解析 - 如何从字符串(日期)表示中获取正确的格式?

时间:2015-04-06 15:07:04

标签: c# parsing csv

我正在解析CSV文件。其中一列代表一个日期。问题是日期可以是dd / MM / yyyy和MM / dd / yyyy。

我无法确定哪个格式是正确的,例如日期为06/04/2015(4月或6月?)

当我能分辨出来时,我的代码正在这样做以格式化输出(标准化的csv)。你知道是否有更好的方法,以及如何识别正确的格式?

  public static DateTime? ToValidDateTime(this string date)
    {
        if (string.IsNullOrEmpty(date))
            return null;

        try
        {
            var r = DateTime.Parse(date, CultureInfo.InvariantCulture);

            return new DateTime(r.Year, r.Month, r.Day, r.Hour, r.Minute, r.Second);


        }
        catch (Exception exception)
        {
            var r = DateTime.Parse(date);

            return new DateTime(r.Year, r.Month, r.Day, r.Hour, r.Minute, r.Second);
        }
    }

1 个答案:

答案 0 :(得分:1)

这不是一个答案,但它需要太多的格式才能适合作为评论。这段代码是多余的:

var r = DateTime.Parse(date);

return new DateTime(r.Year, r.Month, r.Day, r.Hour, r.Minute, r.Second);

你没有充分的理由创建两个日期时间实例。只是第一个就够好了。你可以这样做:

return DateTime.Parse(date);

对于具有InvariantCulture格式说明符的版本也是如此。