java来优化date格式

问题是当我运行我的应用程序,并有一个网格(string和date列),并将其另存为一个Excel文件。

当我第一次保存它时,一切都格式正确,但是当我第二次尝试再次保存相同的确切网格时,date格式不见了(这只是一个浮点值,当我右键单击并格式化为dateTime对象作品)。 当我重新启动我的应用程序,它将再次工作,然后再次失去格式

代码如下所示:

Calendar calendar = Calendar.getInstance(); calendar.setTime((Date)data); Date gmtDate = new Date(((Date) data).getTime() + (calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET))); writableCell = new jxl.write.DateTime(sheetColumn, sheetRow, gmtDate, jxl.write.DateTime.GMT); cellFormat = new jxl.write.WritableCellFormat (new jxl.write.DateFormat("m/d/yyyy h:mm"); writableCell.setCellFormat(cellFormat); sheet.addCell(writableCell); 

我一直保持指向性,所有的东西都应该是这样的(它总是知道这是一个dateTimetypes之前去表),所以我不认为这是从代码。

有没有人遇到这个问题?

尝试这个:

 cellFormat = new jxl.write.WritableCellFormat (new jxl.write.DateFormat("MM/dd/yyyy hh:mm"); 

试着定义一个静态的WritableCellFormat来处理date格式。

 // Required classes. import java.util.TimeZone; import jxl.write.DateFormat; import jxl.write.DateTime; import jxl.write.WritableCellFormat; // Defined once. public static final WritableCellFormat DATE_CELL_FRMT; static { DateFormat df = new DateFormat("MM/dd/yyyy hh:mm"); df.getDateFormat().setTimeZone(TimeZone.getTimeZone("GMT")) DATE_CELL_FRMT = new WritableCellFormat(df); } // Usage writableCell = new DateTime(sheetColumn, sheetRow, gmtDate, DATE_CELL_FRMT); 

看来你的问题类似于“jExcelApi – 单元格date格式重用不起作用” 。 也许,回答这个问题可以帮助你解决问题。

答案重述:根据常见问题解答 (问题:“我得到的错误消息'太多不同的单元格格式'),格式不能在不同的表格中重复使用,因为它们不能被重复使用

在你的情况下,代码可能是这样的:

 WritableCellFormat format = new jxl.write.WritableCellFormat(new jxl.write.DateFormat("m/d/yyyy h:mm")); for(java.util.Date date : someDateList){ WritableCell cell = new jxl.write.DateTime(someColumn, someRow, date, format); sheet.addCell(cell); }