无法从Excel转换日期

时间:2015-10-09 03:50:33

标签: c# excel date

我开发了一个C#应用程序来读取Excel文件中的数据。日期也很少,格式为“dd / MM / yyyy”,我可以将它们转换为DateTime个对象。但是,当我在Web服务器上放置相同的代码时,它会以“MM / dd / yyyy”格式读取Excel日期。我检查了服务器上的语言环境设置,它与我的本地机器“en-AU”相同。以下是转换日期的函数:

private DateTime? GetDate(string value)
    {
        if (value.Contains('/') || value.Contains('-'))
        {
            DateTime date = new DateTime();

            string[] formats = { "dd/MM/yyyy", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy",
                    "dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy", '"d-MMM-yyyy", "dd-MMM-yyyy", "d-MMM-yy", "dd-MMM-yy", "MM/dd/yyyy", "M/dd/yyyy", "M/d/yyyy"};

            if (DateTime.TryParseExact(value, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
            {
                return date;
            }
            else
            {
                return null;
            }
        }
        else
        {
            try
            {
                double add = Convert.ToDouble(value);
                DateTime date = DateTime.FromOADate(add);

                return date;
            }
            catch
            {
                return null;
            }
        }

    }

我正在使用OleDBDataAdapter将Excel文件读入DataTable对象。该函数解析所有可能的日期格式,但它始终返回null。

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

尝试将CultureInfo.InvariantCulture替换为new CultureInfo("en-AU")