//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("d");
转载地址:http://blog.csdn.net/smartsmile2012/article/details/8166744
参考地址:http://www.cnblogs.com/diony/archive/2011/09/08/2171133.html