java UAT版本中的日期格式正在反转

jgzswidk  于 2023-03-21  发布在  Java
关注(0)|答案(2)|浏览(126)
else if (type == Types.DATE) {
        CellStyle cellStyle = workbook.createCellStyle();
        CreationHelper createHelper = workbook.getCreationHelper();
        short newDateFormat = createHelper.createDataFormat().getFormat("dd-MM-yyyy");
        cellStyle.setDataFormat(newDateFormat);
        cellx.setCellStyle(cellStyle);
        cellx.setCellValue(result.getDate(i + 1));  
        System.out.println("This is date:"+result.getDate(i + 1)); 
     }

所以我打印数据从oracle数据库使用spring框架到excel通过使用apache-poi与java v1.7和tomcat服务器v8.5我想打印日期在dd-MM-yyy格式在excel中,我已经实现了在我的本地主机使用sts ide但在uat释放日期格式是逆转为yyyy-MM-dd格式,这是不正确的,根据我的要求。
Ps.我的uat服务器使用的是java 1. 6和weblogic。

djmepvbi

djmepvbi1#

请阅读代码片段上的注解:

short newDateFormat = createHelper.createDataFormat().getFormat("dd-MM-yyyy"); // Create new date format
cellStyle.setDataFormat(newDateFormat); // Set the date format on the cell style
cellx.setCellStyle(cellStyle);
cellx.setCellValue(result.getDate(i + 1));  
System.out.println("This is date:"+result.getDate(i + 1)); // print result.getDate(i + 1) which apparently is some date

所以我的观点是,你在单元格上设置了格式化程序,但是你的日期(result.getDate(i + 1))是不同的。如果你在第二个地方使用它,你必须在那里也格式化它。如果可能的话,你可以尝试重用相同的格式化程序。你也可以从日期到字符串对象格式化一个地方,然后在你需要的地方使用这个字符串对象

j8yoct9x

j8yoct9x2#

通过POI将日期写入Excel可能偶尔会导致许多与日期格式相关的问题。原因是本地差异。在UAT中,机器可能在不同的时区和国家运行,导致不同的日期格式。我假设您在Excel中的“日期”类型单元格中存储日期不是强制性要求。如果是,然后你应该首先设置单元格格式类型为'字符串'格式,然后将日期存储为文本而不是日期。这将确保LOCALE设置不会影响日期,因为你存储的是文本。...

else if (type == Types.DATE) {
                        CellStyle cellStyle = workbook.createCellStyle();
                        CreationHelper createHelper = workbook.getCreationHelper();
                        //short newDateFormat = //createHelper.createDataFormat().getFormat("dd-MM-yyyy");
                        cellStyle.setDataFormat(STRING TYPE);//set string format here
                        cellx.setCellStyle(cellStyle);
                            cellx.setCellValue(result.getDate(i + 1)); //CONVERT IT INTO  STRING FIRST, THEN STORE 
                            System.out.println("This is date:"+result.getDate(i + 1)); 
                         }

相关问题