У меня есть лист excel с ячейкой, содержащей значение даты от 4 сентября 1920 года, которое я хочу проанализировать и использовать в своем приложении. Извлечение его из листа excel отлично работает, но оно не преобразует дату должным образом. Интересно, что когда я извлекаю ячейку, содержащую datevalue
с листа excel, он не возвращает dateformat
или что-то еще, вместо этого он возвращает двойное значение.Ввод Excel для java date
Мне нужно преобразовать это двойное значение (7552.0) в действительный Date
объекта, но я не могу показаться, чтобы сделать это правильно, это ближе всего, что я получил до сих пор:
new SimpleDateFormat("D").parse(getDateFromExcelAsString())
getDateFromExcelAsString()
метод преобразует двойной в строку:
String.valueOf(dateAsDouble.intValue())
проблема заключается в том, что этот метод преобразует 7552.0 двойное значение даты: 4 сентября 1990 г. Но это должно быть 3 сентября 1920 года
Так что, если я правильно понимаю ваше решение, ваше предложение заключается в том, чтобы вычесть 70 лет со дня в java (в размере дневного дня, т.е. 25569), чтобы компенсировать разницу в формате с помощью метода excel для интерпретации даты (в дневном) ? – Ben
Это звучит как быстрая работа, не очень чистая - как вы упомянули, - но это быстрое решение, так что спасибо за ответ, я все равно буду ждать лучшего и менее «взломанного» ответа, но +1 потому что эта работа работает временно. – Ben
Да, это действительно хакерское обходное решение. Я думал об этом, но я не видел никакой стратегии, кроме вычитания смещения. Я также добавил решение с использованием SimpleDateFormat, как вы делали в вопросе. – Julian