JXL和Timezone编写Excel

Enr*_*ico 6 java timezone jxl

我尝试使用jxl创建Excel工作表.我的一个领域是Date,我住的是GMT + 1 TimeZone

我用这样的东西来做:

WritableCellFormat EXCEL_DATE_FORMATTER = new WritableCellFormat(new DateFormat("dd/MM/yyyy hh:mm"));
...
WritableCell cell = null;
cell = new jxl.write.DateTime(col, row, date);
cell.setCellFormat(EXCEL_DATE_FORMATTER);
Run Code Online (Sandbox Code Playgroud)

日期是以正确的格式写的,但是有一个-1小时的值(格林尼治标准时间)我试图找到一个解决方案,我发现这个 http://www.andykhan.com/jexcelapi/tutorial.html#dates 但我可以'将一个SimpleDateFormat传递给DateCell.有办法吗?现在我使用java.util.Calendar添加一个小时,但这是一个可怕的解决方案.谢谢你的帮助!

Ben*_*ine 2

jxl.write.DateTime 类有几个构造函数(参见API)。

默认情况下,它将使用您的系统时区来修改日期。您可以将 jxl.write.DateTime.GMTDate 对象传递给构造函数来禁用此功能。这是您应该使用的代码:

WritableCell cell = null;
cell = new jxl.write.DateTime(col, row, date, DateTime.GMT);
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答,但问题仍然出现:如果我使用日期并在构造函数中放置 DateTime.GMT,则小时为 GMT,如果我不放置 DateTime.GMT,则为 GMT。似乎日期时间仅使用 GMT 而不是我的时区...... (2认同)