POI を使用して日付を書き出すと、Excel にも時刻が表示されます。(表示されている時間は、セルが書き込まれたときのマシン上の時間です)。これは私が使用したコードです
XSSFCellStyle dateStyle = wb.createCellStyle();
CreationHelper createHelper = wb.getCreationHelper();
dateStyle.setDataFormat(createHelper.createDataFormat().getFormat("dd-mmm-yyyy"));
Calendar cal = Calendar.getInstance();
cal.set(xx.getYear(), xx.getMonthOfYear(), xx.getDayOfMonth());
cell.setCellStyle(dateStyle);
cell.setCellValue(cal);
セルの日付は正しい、つまり 2013 年 12 月 12 日ですが、そのセルの数式バーには時間も表示されます。したがって、セルには 12-Dec-2013 が表示され、数式バーには 12-Dec-2013 7:14:39AM が表示されます。Excelでセルの形式を確認したところ、カスタムのdd-mm-yyyyとして表示されます。これは私が期待するものです。セル自体には 12-12-2012 が表示されますが、数式バーのセルには時間も表示されます。また、カレンダーを日付に置き換えました-同じ問題。
追加情報: Excel で列の形式を「一般」に変更しました - POI によって追加されたセルの場合、値は 41319.3769490278 のような xxx.xxx であることがわかりますが、日付を手で入力すると、値が41319 のように見えます。小数点以下の数字が原因で時間が表示されているようです。POIを使用して書き出すときにこれを回避する方法がわからない