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);
我一直保持指向性,所有的东西都应该是这样的(它总是知道这是一个dateTime
types之前去表),所以我不认为这是从代码。
有没有人遇到这个问题?
尝试这个:
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); }