把excel格式转换成C#TimeStamp就像excel一样

在我的应用程序中,我正在读取Excel表格中的一些数据,当我想从单元格获取时间戳时,我陷入了困境。 在这个特定的单元格中,我得到了一个值'1900-01-02 13:20:04',在Excel中,我使用的格式为'[h]:mm:ss',这个值格式为'61:20:04',是正确的,因为这些单元格显示了一些员工工作的时间。 我想要实现的是从excel中读取这些数据,格式与excel('61:20:04')相同,并保存为string。 我的问题是如何阅读这个,或转换为这个时间戳值?

编辑(我现在这样做)

我正在阅读使用ODBC的Excel中的代码,所以只需select我需要的数据(如sQlselect) – >将所有数据添加到数据表,然后我只是在做

dr [“workedHours”]。ToString() – (dr =我的DataTable.Rows中的DataRow)这一行返回'1900-01-02 13:20:04'。 我怎样才能把它转换成像excel那样的时间呢。

一些概念certificate:

var timeStamp = "1900-01-02 13:20:04"; var date = DateTime.Parse(timeStamp); var stamp = date.Subtract(new DateTime(1900, 1, 1)); var result = string.Format("{0}:{1:00}:{2:00}", 24 + stamp.Days * 24 + stamp.Hours, stamp.Minutes, stamp.Seconds); 

由于某种原因,Excel从1900年1月1日起需要时间戳,这就是为什么我在结果中添加24小时的原因。

我以为你总是希望格式hh:mm:ss,即使是天,月等。

如果没有提供任何代码,我们应该远离“如何正确读取数据”,并指出“如何转换您的输出”。

可以这样工作:

 string[] stampParts = output.ToString().Split(' '); string[] dateParts = stampParts[0].Split('-'); string[] timeParts = stampParts[1].Split(':'); var result = new TimeSpan(((Convert.ToInt32(dateParts[2])-1)*24) + Convert.ToInt32(timeParts[0]), Convert.ToInt32(timeParts[1]), Convert.ToInt32(timeParts[2])); 

这将从date开始的24小时增加一个到你的时间。
注意:我在这里计算了几个月。 所以这个代码在一个月内计算是有限的。 如果你想输出更多的数字(超过720小时),这个月份必须包含在计算中。

提供代码后编辑:
对不起,我曾经使用过odbc连接。 但重点是:你得到的是原始价值而不是计算的价值。 我已经尝试了谷歌search,但无法find太多的结果。

也许别人可以帮助这个。 相反,我会build议只是转换输出。