在C#中将Timespan转换为DateTime

Irf*_*aza 10 c# datetime ole-automation excel-interop

我正在使用C#和Microsoft.Office.Interop阅读Excel工作表数据.工作表包含一些日期值.当我试图读取该值时,它只是给出了数字(可能是TimeSpan).我在将此数字转换为DateTime时遇到问题.

以下是代码:

TimeSpan ts = TimeSpan.Parse(((Range)ws.Cells[4, 1]).Value2.ToString());
Run Code Online (Sandbox Code Playgroud)

哪里wsExcel.WorkSheet.

任何人都可以解释我应该如何将这个数字(TimeSpan)转换成DateTime

感谢您分享宝贵的时间.

Dim*_*kis 9

您可以执行以下操作

double d = double.Parse(((Range)ws.Cells[4, 1]).Value2.ToString());

DateTime conv = DateTime.FromOADate(d);
Run Code Online (Sandbox Code Playgroud)


小智 9

使用以下内容:

DateTime dt = new DateTime().Add( TimeSpan.FromMilliseconds( 1304686771794 ) )
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 6

这一切都取决于数字的含义; p通常是某个时间间隔内的偏移,进入某个时代 - 例如自1970年1月1日以来的秒数.所以试试,例如:

var when = new DateTime(1970,1,1).AddSeconds(number);
Run Code Online (Sandbox Code Playgroud)

然后尝试AddMilliseconds(number),AddTicks(number)等等,直到日期匹配.