我如何在java中应用excel的自定义日期格式?

问题描述

我有一个 2007 年的 Excel 文件,名为 Test10。第一行有 10 个标题,test1 test2 等到 test10。第二行,第 3 列有一个日期,10-10-2020 与 10-10-2020 日期的单元格上有一个自定义日期格式 -> dd-mm-yyyy

单元格中的日期写为 2020-10-10。

我有来自 Java 单元格的格式,但是当我得到它时,它是 dd/-mm/-yyyy;@,日期是 2020-10-10。

我需要以某种方式将该格式应用于手头的日期。

我需要更灵活的东西,有那种格式的类吗?到目前为止,我设法找到的是如何在创建 excel 时将格式应用于 java 中的 excel,而不是相反,从 Excel 文件获取它时。

我可以手动序列化格式并删除不需要的特殊字符,但这是一种解决方法

我需要一个类,它将奇怪的格式应用于日期,在 Java 中。有这样的吗?

我上面提供的例子也是一个非常简单的例子。

我们正在使用自定义处理程序,日期为双精度值,我们目前使用 DateUtil.getJavaDate 以字符串形式获取日期。

我还没有创建处理程序,所以很难理解它的全部内容,但是在处理程序的某个地方,单元格的自定义格式从 Excel 中提取并放入一个变量中,在 DateUtil. getJavaDate 被称为我可以访问格式化变量。

以前它使用 SimpleDateFormat(CONSTANT_FORMAT).format(DateUtil.getJavaDate(d)) 对其进行格式化,但我需要应用自定义格式。是否有解析 xlsx 日期格式的库。由于 dd/-mm/-yyyy;@ 格式不适用于 SimpleDateFormat。

此外,我无法序列化硬编码格式,就像我用 MM 替换 mm 一样,我怎么知道用户是想要几分钟还是几个月?

解决方法

来自 org.apache.poi 的 DataFormatter 处理奇怪的 excel 格式