Я не вижу встроенного способа легко сделать это в POI. Во-первых, кажется, что нет четкого различия между «время», «дата» и «дата-время». Значения просто хранятся в виде чисел, и для их отображения применяется формат.
Одна вещь, которую вы можете сделать, это получить стиль ячейки (HSSFCellStyle
), а затем написать свой собственный метод, который читает либо style.getDataFormatString()
, либо style.getDataFormat()
и сообщает вам, попадает ли формат в категорию «Время», «Дата» или «Дата-время» в зависимости от о том, как вы их определяете. Второй метод возвращает int
, поэтому с ним может быть проще работать.
Например, выделенный ниже формат имеет строковый формат данных «[$-F400]h:mm:ss\ AM/PM» и значение int
, равное 166.
![Формат даты/времени Excel](https://i.stack.imgur.com/eoaVf.png)
Я предполагаю, что это то, что вы подразумеваете под форматом «Дата и время», поскольку это один из встроенных форматов Excel, который отображает как дату, так и время.
Недостатком этого подхода является то, что я не ожидал, что он будет работать с ячейками, имеющими настраиваемые форматы даты/времени.
person
Bill the Lizard
schedule
26.10.2010