格式化' [$ - F400] h:mm:ss \\ AM / PM' c#中的Excel 2007日期时间

时间:2015-12-17 16:12:41

标签: c# excel datetime openxml closedxml

我试图在c#中阅读Excel 2007+文件,但到目前为止我尝试过的所有库(OpenXML,ClosedXML和NPOI)似乎都无法正确解析时间格式的单元格。

在Excel中,数据的格式为Number>时间和用途' * hh:mm:ss'因为它的类型。

当我查看库中的原始值时,它显示为0.0416666666666667。我已经按照其他帖子的建议,建议使用DateTime.FromOADate(正确)导致' 30/12/1899 01:00:00'。

我真正坚持的是如何显示日期时间对象{30/12/1899 01:00:00},因为它在Excel中显示:' 01:00:00' 。我可以看到Style.DateFormat被设置为' [$ - F400] h:mm:ss \ AM / PM'但是如何使用它来将C#中的DateTime对象格式化为字符串? ToString()方法不会将其识别为有效格式。

1 个答案:

答案 0 :(得分:0)

根据定义,DateTime始终具有日期和时间。只有时间你必须使用TimeSpan。这是一个快速的方法,你可以得到它。

DateTime originalDateTime = DateTime.Now;
TimeSpan hoursMinutesSeconds = originalDateTime.TimeOfDay;