.NET C#读取Excel文件DateTime列只读1秒钟,为什么?

我有一个Excel文件,其中一列有DateTime值:

01.03.2012 10:00 02.03.2012 10:00 03.03.2012 10:00 04.03.2012 10:00 

我正在阅读这个代码:

 OleDbDataAdapter command = new OleDbDataAdapter("select * from [" + sheetName + "$]", Conn); command.Fill(Result); 

有趣的是,从Excel文件中的数据来完全是这样的(第一列是正确的,但另外1秒less)

 01.03.2012 10:00:00 02.03.2012 09:59:59 03.03.2012 09:59:59 04.03.2012 09:59:59 

剩下的值是09:59:59 …只有第一个值才能正确的数据。

为什么我有这个问题,并有任何想法如何让他们完全按照它在Excel文件上的方式?

我非常感谢任何帮助。 提前致谢,

在Excel工作表中不是真正的10:00,因为Excel不支持这种格式的时间:

  • 1秒保持为1 /(24 * 60 * 60)= 0.00001157407
  • 10:00:00举行0.41666666667
  • 9:59:59举行为0.41665509259

将时间复制到其他单元格中,并将其格式化为带有七位或八位小数的数字。 我的猜测是,转换为9:59:59的值小于0.41666666667,正在被截断,而不是四舍五入。

我怀疑你实际上在Excel电子表格中有09:59:59 ,并且是将时间“舍入”到10:00的显示格式。 检查应用的单元格格式。