code: public static void setCellValueAsDate(Cell cell, Date date, boolean dateStart1904) {
  
          ArgUtils.notNull(cell, "cell");
          ArgUtils.notNull(date, "date");
  
          if(dateStart1904) {
              // 1904年始まりの場合は、そのまま設定する
              cell.setCellValue(date);
  
          } else {
  
              long timemills = date.getTime();
              if(timemills <= MILLISECONDS_19000101_END) {
                  // 1900年1月0日の場合は、数値に変換してから設定する
                  // タイムゾーンを除去する
                  Date strip = new Date(date.getTime() + TimeZone.getDefault().getRawOffset());
                  double num = ExcelDateUtils.convertExcelNumber(strip, dateStart1904);
                  cell.setCellValue(num);
  
              } else {
                  cell.setCellValue(date);
              }
  
          }
  
      }
docs: セルに日時を設定する。
  <p>1900年1月0日となる経過時間指定の場合は、POIのバグにより設定できあいため、数値として設定する。</p>
  
  @param cell 設定するセル
  @param date セルに設定する日時
  @param dateStart1904 1904年始まりの設定のシートかどうか