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");
注我的个人公众号,每日更新,获取更多技术知识