可以先判断单元格的类型,有的日期是字符串存储的,有的是按日期存储的(单元格按数字解析),代码如下: Cell cell = row.getCell(); Date date = null; if (cell.getCellType() == CellType.STRING){ //按字符串转换日期 } else if (cell.getCellType() == CellType.NUMERIC) { date = cell.getDateCellValue(); }
最近在做导入的时候发现,excel中设置数值格式是不能有日期的那些符号出现的,/ - : 之类的,否则就会变成数字到了java后台,设置成日期,比如 yyyy-mm-dd 到了后台也是数字,即距离1900年到现在的天数,这个时候校验肯定是很不方便的,所以只能转一下: //创建1900年的日历对象 Calendar c = new GregorianCalendar(1900,0,-1); Date d = c.getTime(); //获取时间戳 ,然后加上天数,因为excel中默认会传来今天到
if (r.getCellType()==Cell.CELL_TYPE_NUMERIC){ if(HSSFDateUtil.isCellDateFormatted(r)){ //用于转化为日期格式 Date d = r.getDateCellValue(); DateFormat formater = new SimpleDateFormat("yyyy-MM"); value = formater.format(d); }else { BigDecimal bigDecimal =
经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结 import java.text.SimpleDateFormat;import net.sf.json.JsonConfig;import net.sf.json.processors.JsonValueProcessor; public class DateJsonValueProcessor implements JsonValueProcessor{ private String for