读取Execl数据到Datatable或DataSet时 日期单元格出现乱码的解决方案

Execl某单元格数据为 2012-1-10 读取到DataTable变为40918 不是正确的2012-1-10

其实excel在转换格式的时候就自动把日期变成数字了,

那这个数字是怎么来的呢 ? 如果你把日期改成1900年1月1日,那么你可以看到他的转换结果是1,以此类推,39902是哪一天就明白了吧

解决方法一:

  //strValue是你的日期40918 值带进来
    public static string getDateStr(string strValue)
    {
        int i = Convert.ToInt32(strValue);
        DateTime d1 = Convert.ToDateTime("1900-1-1");
        DateTime d2 = d1.AddDays(i - 2);
        string strTemp = d2.ToString("d");
 
 
        return strTemp;
    }

解决方法二:

DateTime.FromOADate(Convert.ToInt32(strValue)).ToString("yyyy-MM-dd");

注我的个人公众号,每日更新,获取更多技术知识


  

posted @ 2024-01-18 09:39  黄明辉  阅读(14)  评论(0编辑  收藏  举报