在asp.net中将从excel文件input的时间转换为gridview

我有一个excel文件,我在格式 – “10:14:16”添加时间,并添加代码

dt = ExcelLibrary.DataSetHelper.CreateDataTable(FilePath, "abc"); 

在asp.net中的gridview中转换和显示这个excel文件。 它显示的值为“0.426574074074074”

我无法将此数据保存在SQL Server数据库中,因为我需要的格式与在Excel文件中提到的相同。 请帮帮我。

这是一个OAdate。 OAdate表示以OLE自动格式存储在计算机上的date。 您可以使用double.Parse从string中获取double,并使用DateTime.FromOADate将其parsing为DateTime

 string date = "0.426574074074074"; double num; if (double.TryParse(date, NumberStyles.Float, CultureInfo.InvariantCulture, out num)) { DateTime dt = DateTime.FromOADate(num); // 12/30/1899 10:14:16 // use DateTime.TimeOfday to get the TimeSpan: TimeSpan ts = dt.TimeOfDay; // 10:14:16 } 

您需要使用DateTime.FromOADate(双date) ,它返回一个DateTime相当于指定的OLE自动化date。

 DateTime dt = DateTime.FromOADate(double.Parse(stringVariableContainingDateTime)); 

d参数是一个双精度浮点数,表示date为基准date前后的天数,即1899年12月30日午夜。d的符号和积分部分将date编码为正日或负日从1899年12月30日的位移,以及d的小数部分的绝对值,将当天的时间编码为从午夜起的一小部分时间的位移。 d必须是负值657435.0之间的正值2958465.99999999, MSDN 。