Java导出excel日期单元格设置方法+Java秒转时分秒方法
一、Java导出excel日期单元格设置方法
问题:
最近开发Java导出报表功能,测试发现了一个问题: 导出excel后,日期单元格的内容为:yyyy-MM-dd HH:mm:ss;
但是双击该单元格后,再点击其它单元格时,这个日期就会变成一个数字了(好像是距离1970-01-01的天数),有问题。
解决方法:
在Java代码中,设置单元格格式,样例如下:
//表格对象 XSSFWorkbook wb = new XSSFWorkbook(); //样式对象 XSSFCellStyle style = wb.createCellStyle(); //数据格式对象 XSSFDataFormat format = wb.createDataFormat(); //给样式对象设置数据格式 style.setDataFormat(format.getFormat("yyyy-MM-dd HH:mm:ss")); //创建一个子表 XSSFSheet sheet = wb.createSheet("样例表"); //创建一行 XSSFRow row = sheet.createRow(0); //创建一格 XSSFCell cell = row.createCell(0); //给格设置样式,这样日期格式就正确了 cell.setCellStyle(style); //给格设置内容,日期样例 cell.setCellValue("2022-02-22 22:22:22");
二、Java秒转时分秒方法
输入:
String类型的秒(其实是int)
输出:
String类型,“x秒” 或 “x分x秒” 或 “x时x分x秒”
public static String transHms(String str){ if(str==null || "".equals(str.trim())){ return ""; }else{ try{ int second = Integer.parseInt(str); if(second <=59){ return second + "秒"; } else if(second <= 3600){ int minute = second / 60; second = second - minute * 60; return minute + "分" + second + "秒"; }else{ int hour = second / 3600; second = second - hour * 3600; int minute = second / 60; second = second - minute * 60; return hour + "时" + minute + "分" + second + "秒"; } }catch (Exception e) { return ""; } } }