Форматирование '[$-F400] ч: мм: сс \\ AM/PM' Дата и время Excel 2007 в C#

Я пытаюсь прочитать файлы Excel 2007+ в C#, но все библиотеки, которые я пробовал до сих пор (OpenXML, ClosedXML и NPOI), похоже, не могут правильно проанализировать ячейку с форматом времени.

В Excel данные форматируются как Число> Время и в качестве типа используются "* чч: мм: сс".

Когда я смотрю на необработанное значение в библиотеках, оно выглядит как 0.0416666666666667. Я следовал советам из других постов, которые предлагают использовать DateTime.FromOADate, что (правильно) приводит к "30/12/1899 01:00:00".

Я действительно застрял в том, как отобразить объект datetime {30/12/1899 01:00:00}, как он отображается в Excel: '01:00:00'. Я вижу, что Style.DateFormat установлен в '[$-F400]h:mm:ss\ AM/PM', но как я могу использовать это для форматирования объекта DateTime в C# в виде строки? Метод ToString() не распознает его как допустимый формат.

1 ответ

DateTime по определению всегда есть дата и время. Чтобы иметь только время, вы должны использовать TimeSpan, Вот быстрый способ получить это.

DateTime originalDateTime = DateTime.Now;
TimeSpan hoursMinutesSeconds = originalDateTime.TimeOfDay;
Другие вопросы по тегам