Похоже, что все даты, которые вы нам показали, вписываются в формат ДД / ММ / ГГГГ, распространенный в Европе и, возможно, в других регионах. Но когда вы вручную вводите значение в Excel, он использует параметры локальной системы для определения даты. Похоже, что ваш локальный формат даты - MM / DD / YYYY, который используется в США. К сожалению, некоторые даты ДД / ММ / ГГГГ будут анализироваться «правильно» в формате ММ / ДД / ГГГГ, но будут давать неправильную дату, в то время как даты, которые не анализируются правильно, будут просто рассматриваться как строки. Похоже, это то, что вы видите.
for USA
Date entered Excel Type Display Text
------------ ---------- --------------- ----------------
1/4/2018 Date 1/4/2018 January 4, 2018
2/4/2018 Date 2/4/2018 February 4, 2018
15/4/2018 General 15/4/2018 Unknown
for Europe
Date entered Excel Type Display Text
------------ ---------- --------------- ---------------
1/4/2018 Date 1/4/2018 April 1, 2018
2/4/2018 Date 2/4/2018 April 2, 2018
15/4/2018 Date 15/4/2018 April 15, 2018
Мне кажется, что все даты, которые вы дали мне, соответствуют DMY, и нет никакого смысла в том, что кто-то на самом деле смешал бы эти два, не сказав вам, что были MDY, и которые были DMY, потому что нет другого способа сказать, кроме этого некоторые даты не будут работать в другом формате (те, у которых день> 12).
Поэтому относитесь к ним как к DMY, а при создании электронной таблицы используйте Text to Columns
и сообщите мастеру, что в столбце содержатся даты в формате DMY. Это должно обеспечить правильное значение даты для всего столбца. Обратите внимание, что значения D и M поменяют позиции для всех дат в столбце. Теперь вы можете обрабатывать его с помощью POI и не иметь дело со странными преобразованиями.