今天在项目中遇到一个问题:我需要将excel中的日期时间并格式话,但转换格式后时间中的小时总是出错,如下图
代码如下:
public class ExcelTest {
public static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// TimeZone gmtZone = TimeZone.getTimeZone("GMT");
// df.setTimeZone(gmtZone);
try {
Workbook wbk = Workbook.getWorkbook(new File("E:\\至真电信项目\\传输告警数据\\阿郎\\20140123alarm.xls"));
Sheet sheet = wbk.getSheet(0);
Cell cell = sheet.getCell(0, 1);
System.out.println(cell.getContents());
if(cell.getType() == CellType.DATE) {
DateCell dateCell = (DateCell) cell;
Date date = dateCell.getDate();
long time = date.getTime();
System.out.println(df.format(time));
}
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
查找了很多资料,发现是本地编辑器的时区与excel表格的时区不一致,需设置时间格式的时区就ok了
TimeZone gmtZone = TimeZone.getTimeZone("GMT");
df.setTimeZone(gmtZone);