无法从Excel转换日期

本文关键字:转换 日期 Excel | 更新日期: 2023-09-27 18:16:47

我开发了一个从Excel文件中读取数据的c#应用程序。还有一些日期的格式为"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。

有什么问题吗?

无法从Excel转换日期

尝试用new CultureInfo("en-AU")代替CultureInfo.InvariantCulture