当前位置: 首页 > 知识库问答 >
问题:

Apache POI:在实际的电子表格中,设置日期有时会出现错误

雷晋
2023-03-14

作为测试,在输出实际文件(从输出的XSSFWorkbook文件)之前,I event将一些日期值打印到控制台,它们仍然是正确的。然后我打开电子表格,他们错了;超级怪异。

我尝试过多种解决方案,比如将日期读作字符串并将其转换回来,将所有不推荐的日期值更改为日历,但在我的程序结束后,有些东西中断了,可能是如何读取数据的?我在网上找到的唯一一个类似的案例是在这里提到的:

POI Java日期与Excel秒差

..但没有解决方案张贴和我不确定我将如何使用epoch diff util的东西。我的代码太大了,无法共享,我不认为问题出在我的代码上,但是如果需要的话,我可以共享一些东西,如果有帮助的话,甚至可以尝试将它隔离成一个小样本。

任何协助都是很好的!谢谢!

cal.set(y, m, d, h, mi, s);
cal.set(Calendar.MILLISECOND, 0);

再次感谢!

共有1个答案

池俊茂
2023-03-14

即使这个问题缺少一个具体的例子,我也有一种怀疑。

如果我们正在使用:

  Calendar calendar = Calendar.getInstance();

然后根据文件

  calendar.set(2016, 7, 28, 9, 17, 0);

所以我们应该做:

  Calendar calendar = Calendar.getInstance();
  calendar.clear();
  calendar.set(2016, 7, 28, 9, 17, 0); 

这是:创建一个calendar实例,其中包含当前日期时间(包括毫秒)。然后清除日历。所以我们可以确定毫秒是没有定义的。然后设置所需的日期时间。

还可以使用

  GregorianCalendar calendar = new GregorianCalendar(2016, 7, 28, 9, 17, 0);
 类似资料:
  • 但以下内容: 只是管用。 日期的大小写相同。

  • 当我试图从我的thymeleaf html表单中保存一个Date输入到控制器时,我收到一条错误消息。它似乎是作为字符串从表单中发送的,但我希望它作为Date发送。我设置了输入类型=date,所以我不确定它为什么出错。这是错误: 下面是该部分的html代码,expirationDate是我发送回控制器的卡对象的一个属性: 这是控制器。获取日期值并在表单中预先填写可以很好地工作,但由于某种原因,当我提

  • 但如何在指定时区设置日期的格式? 无论浏览器的当前时间如何,我都希望得到一致的结果,但我不希望以UTC显示日期。

  • 我知道我可以像这样轻松地在JSP中格式化日期: 我做错了什么?

  • 我看到摄入的日期时间格式是:,但我没有在网站上看到任何可以做到这一点的东西。 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html 我的最终状态是通过@timestamp索引,我想通过这个字段进行索引:tmpstmp 我还注意到,如果我将tmpstmp设置为type Date

  • 我在想是否有人能帮我。 我是一个非常新的ASP我想格式化当前的日期和时间如下: 但我能做的只有以下几点 有人能帮我一下吗。