私は、1920年9月4日の日付の値を含むセルをExcelシートに入れ、アプリケーションに解析して使用します。 Excelシートから抽出するとうまく動作しますが、日付が正しく変換されません。興味深いのは、datevalue
を含むセルをExcelシートから抽出すると、dateformat
などが返されず、代わりにdouble値が返されるということです。Excelの入力からJavaの日付
私は、有効なDate
オブジェクトにこのdouble値(7552.0)に変換する必要がありますが、私はこれを適切に行うように見えることはできません、これは私がこれまでに得ているという最も近い:
new SimpleDateFormat("D").parse(getDateFromExcelAsString())
getDateFromExcelAsString()
この方法は、文字列に二重に変換:
String.valueOf(dateAsDouble.intValue())
問題は、この方法は、現在までに7552.0 double値を変換していることである:9月4日、1990年しかし、これは1920年9月3日
する必要があります0
あなたの解決策が正しく理解されている場合は、javaの日付(つまり日の数が25569)から70年を差し引いて、日付の解釈をExcelで行う方法でフォーマットの違いを補うことをお勧めします。 ? – Ben
これはすばらしい回避策のように聞こえますが、あまりクリーンではありません。言いましたが、すぐに解決できるので、答えをいただき、ありがとうございます。この回避策は一時的に機能するためです。 – Ben
はい、実際にはハックのある回避策です。私はそれについて考えていましたが、オフセットを減算する以外の方法はありませんでした。私はSimpleDateFormatを使って解決策を追加しました。 – Julian