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

POI XSSF和SAX(事件API)的日期格式问题

江棋
2023-03-14

我正在使用POI的事件API来处理大量的记录,而没有任何内存占用问题。这是它的参考资料。

当我处理XLSX表单时,我得到的日期值格式与excel表单中指定的格式不同。excel表格中列的日期格式为“dd-mm-yyyy”,因为我得到的值是“mm/dd/yy”格式。

有谁能告诉我如何得到excel表格中给出的实际格式。下面给出了代码段的引用。

ContentHandler handler = new XSSFSheetXMLHandler(styles, strings,
          new SheetContentsHandler() {
            public void startRow(int rowNum) {
            }
            public void endRow() {
            }
            public void cell(String cellReference, String formattedValue) {
                  System.out.println(formattedValue);
                } catch (IOException e) {
                    System.out.println(
                      "Exception during file writing");
                }
              }

在cell方法中获取日期列的formmatedValue类似于'mm/dd/yy',因此我无法在PL/SQL程序中正确地进行验证。

共有1个答案

鲜于致远
2023-03-14

Excel存储一些带有区域设置的日期。例如,在Excel中的“数字格式”对话框中,您将看到如下警告:

根据指定的类型和区域设置(位置),将日期和时间序列号显示为日期值。以星号(*)开头的日期格式响应“控制面板”中指定的区域日期和时间设置的更改。没有星号的格式不受控制面板设置的影响。

您正在读取的Excel文件可能正在使用这些*日期之一。在这种情况下,POI可能使用美国默认值。

有关Excel中区域日期设置的讨论,请参阅以下内容。

 类似资料:
  • 这(我希望)是一个基本问题。我没有在fullcalendar中看到日历事件,我认为问题是我尝试用于开始/结束事件的日期格式。我试图通过加载JSON事件来设置一个基本日历。下面是我的JSON输出(为了不占用太多空间,修剪为一个事件): 我的javascript如下所示: 再说一遍,非常基本。我确定事件未出现的问题是由于我使用的日期格式造成的,但我不确定如何告诉fullCalendar使用格式来使用m

  • 问题内容: 我正在使用新的日期时间API,但是在运行时: 它抛出: 查看LocalDate类的源代码时,我看到: 如文档中所述: 此方法将根据类文档中描述的简单字母和符号模式创建格式化程序。 并且所有这些字母都已定义。 那么为什么不允许我们使用一些图案字母呢? 问题答案: 仅代表一个日期,而不代表DateTime。因此,在格式化a时,“ HH:mm:ss”毫无意义。假设您要代表日期和时间,请改用a

  • 我正在玩新的日期时间API,但在运行时: 它抛出: 在查看LocalDate类的源代码时,我看到: 正如文件中所述: 该方法将根据类文档中描述的字母和符号的简单模式创建格式化程序。 所有这些字母都有定义。 那么为什么选择DateTimeFormatter呢。ofPattern不允许我们使用一些模式字母?

  • 我正在尝试将DatePicker日期格式化为简单的数据格式(“yyyy-MM-dd HH: mm: ss Z”)。有人告诉我,我需要使用简单的数据格式将其解析为日期对象-简单的数据格式(“yyyy-MM-dd”),然后将其格式化为我需要的内容,如下所示。但是,我在尝试捕捉块中收到错误“重复局部变量eDate”。任何专家都可以查看我的代码并提出建议吗? 已更新

  • 问题内容: 我的日期格式是,它产生日期: 但我需要这样的日期: 什么日期格式将产生带有冒号的偏移量? 问题答案: 您可以使用这种格式 看看该文档以获取更多信息。 PS:- 正如我的朋友 @Thomas所 提到的,这仅适用于 Java 7 及更高版本。

  • 我想从JavaScript对象中获取格式的日期。 从上面一行,我期待但得到 怎么解决?