nxblog

最近遇到个问题,就是Java的Excel导入时,对Excel中的日期做处理,常规模式用下面这种方法处理

HSSFCell birthDateCell = row.getCell(col++);

Date date = birthDateCell.getDateCellValue(); 

今天推荐下面这种做法:

首先定一个方法,做返回date类型,需要传object值类型

 public static Date getDate(Object o)
  {
    if (o == null)
      return null;
    if (o instanceof Date)
      return ((Date)o);
    if (o instanceof String)
      return getDate(String.valueOf(o));
    if (o instanceof Timestamp)
      return new Date(((Timestamp)o).getTime());
    if (o instanceof Date)
      return new Date(((Date)o).getTime());

    return null; 

  } 

或者这样

 public static Date getDate(String dateStr)

  {
    Date temp1 = null;
    if (dateStr == null)
      return null;
    if (dateStr.equals(""))
      return null;
    SimpleDateFormat formatter = null;
    try {
      if (dateStr.indexOf(" ") != -1) {
        String[] aa = StringUtils.split(dateStr, ":");
        if (aa.length == 3)
          formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        else if (aa.length == 2)
          formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        else
          formatter = new SimpleDateFormat("yyyy-MM-dd HH");

      }
      else if (dateStr.indexOf("-") == -1) {
        formatter = new SimpleDateFormat("yyyyMMdd");
      } else {
        formatter = new SimpleDateFormat("yyyy-MM-dd");
      }

      temp1 = formatter.parse(dateStr);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return temp1;
  }

然后做Java的Excel导入时,就可以操作时间了

 HSSFCell registerTimeCell = row.getCell(col++);

 Date date = DateUtil.getDate(getCellValue(registerTimeCell));

把上面的2个 getDate方法放到你定义的类里面去,方便使用

分类:

技术点:

相关文章:

  • 2021-10-03
  • 2021-09-20
  • 2021-11-18
  • 2021-12-08
  • 2021-12-13
  • 2021-07-07
  • 2021-12-05
  • 2022-01-22
猜你喜欢
  • 2022-01-15
  • 2021-09-29
  • 2021-11-13
  • 2021-09-29
  • 2021-11-04
  • 2021-09-29
  • 2021-06-15
相关资源
相似解决方案