Aspose.cell excel转pdf日期格式不正确yyyy/MM/dd变成MM/dd/yyyy

这篇具有很好参考价值的文章主要介绍了Aspose.cell excel转pdf日期格式不正确yyyy/MM/dd变成MM/dd/yyyy。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近使用Aspose.cell将excel转pdf过程中excel中时间格式列的显示和excel表里的值显示不一样。
excel里日期格式 yyyy/MM/dd
pdf里日期格式MM/dd/yyyy

主要原因:linux和windows里内置的时间格式不一致,当代码部署到linux服务器的时候转换格式就会发生不一致的问题。
解决方法:使用apache poi获取aspose遍历所有的CELL判断其类型,若是日期格式则手动格式化日期格式并将单元格设置成String类型。

接下来详细讲解怎么操作。

例:这边的的B列设置了时间格式且显示是yyyy/MM/dd
Aspose.cell excel转pdf日期格式不正确yyyy/MM/dd变成MM/dd/yyyy,excel,pdf,java,apache
但转成pdf过程中却格式变样了变成MM/dd/yyyy

在这里插入图片描述
Aspose.cell excel转pdf日期格式不正确yyyy/MM/dd变成MM/dd/yyyy,excel,pdf,java,apache文章来源地址https://www.toymoban.com/news/detail-611558.html

/**
   对excel里所有单元格进行遍历,判断单元格类型是Numeric且是时间类型,
   类型==14)则进行日期格式化且将cell类型设置成String
   单元格为自定义类型的时候,cell.getCellStyle().getDataFormat()值:
  yyyy-MM-dd---->14
  yyyy年m月d日--->31
  yyyy年m月------>57
  m月d日  -------->58
  HH:mm--------->20
  h时mm分  ------>32
 */
public void formatterAllDateCellStyle(POIUtils poiUtils) {
        Sheet sheet = poiUtils.getSheet();
        // 遍历行Row
        // 获取sheet中的总行数
        int rowTotalCount = sheet.getLastRowNum();
        for (int i = 0; i <= rowTotalCount; i++) {
            // 获取第i列的row对象
            Row row = sheet.getRow(i);
            //解决空白行问题
            if (row == null) {
                continue;
            }
            //获取总列数
            int columnCount = row.getLastCellNum();
            for (int j = 0; j < columnCount; j++) {
                Cell cell = row.getCell(j);
                //如果未null则跳过
                if (row.getCell(j) == null) {
                    continue;
                } else {
                    if (cell.getCellType().equals(CellType.NUMERIC)) {
                        //日期格式
                        short format = cell.getCellStyle().getDataFormat();
                        if (DateUtil.isCellDateFormatted(cell)) {
                            if (format == 14) {
                                SimpleDateFormat sdf = null;
                                sdf = new SimpleDateFormat("yyyy/M/d");
                                double valueDouble = cell.getNumericCellValue();
                                Date date = org.apache.poi.ss.usermodel.DateUtil.getJavaDate(valueDouble);
                                String formatStr = sdf.format(date);
                                cell.setCellType(CellType.STRING);
                                cell.setCellValue(formatStr);
                            }

                        }
                    }
                }
            }
        }
    }

到了这里,关于Aspose.cell excel转pdf日期格式不正确yyyy/MM/dd变成MM/dd/yyyy的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql 将时间格式化为yyyy-MM-dd或者yyyy-MM-dd HH:mm:ss

    DATE_FORMAT函数 yyyy-MM-dd    yyyy-MM-dd HH:mm:ss

    2024年02月16日
    浏览(41)
  • Java 时间格式由yyyy-MM-dd HH:mm:ss 转换为 yyyy-MM-dd‘T‘HH:mm:ss

    我最近在调用接口的时候遇见了一个很少见的时间格式yyyy-MM-dd\\\'T\\\'HH:mm:ss,所以总结了一下格式之间的转换 注意:yyyy-MM-dd\\\'T\\\'HH:mm:ss  中间的引号不能少  还有一种格式 yyyy-MM-dd\\\'T\\\'HH:mm:ss.SSS\\\'Z\\\' 也可以转换 不可以使用s.parse(String param);

    2024年02月16日
    浏览(66)
  • 致命小问题:YYYY-MM-dd格式化时间

    日期格式化可以说是最常用的一个小知识了,例如格式化成\\\" 年-月-日 \\\"、\\\" 年-月-日 时-分-秒 \\\"、“ 年/月/日 ”等等,随之也就出现了“ yyyy-MM-dd ”、\\\" yyyy-MM-dd HH-mm-ss \\\"等格式,使用不当就会一脸懵逼。 首先将日期改为 2019 看一下运行效果: 其次将日期改为 2022 再看一下运行

    2024年02月05日
    浏览(46)
  • ES 中时间日期类型 “yyyy-MM-dd HH:mm:ss” 的完全避坑指南

    时间和日期类型是我们作为开发每天都会遇到的一种常见数据类型。和 Java 中有所不同, Elasticsearch 在索引创建之前并不是必须要创建索引的mapping。关系型数据库的思维就是在中写入数据之前,并不强制创建表结构。我们不用事先声明字段名称,字段类型以及长度等属性就可

    2024年01月23日
    浏览(47)
  • yyyy-MM-dd HH:mm:ss 时间格式 时间戳 全面解读超详细

    时间格式(协议) 描述 gg 时期或纪元。 y 不包含纪元的年份。不具有前导零。 yy 不包含纪元的年份。具有前导零。 yyyy 包含纪元的四位数的年份。 M 月份数字。一位数的月份没有前导零。 MM 月份数字。一位数的月份有一个前导零。 MMM 月份的缩写名称,在AbbreviatedMonthNames中定

    2024年02月05日
    浏览(41)
  • 前端 jQuery 如何将时间转换为yyyy-MM-dd格式的

    可以使用 JavaScript 内置的 Date 对象和其提供的方法来实现将时间转换为指定格式的字符串。具体可以使用以下代码: 上述代码中,我们首先创建了一个 Date 对象,然后使用其提供的 getFullYear() 、 getMonth() 和 getDate() 方法获取了年份、月份和日期。注意, getMonth() 方法返回的月

    2024年02月06日
    浏览(43)
  • 【夏令时】用@JsonFormat(pattern = “yyyy-MM-dd“)注解,出生日期竟然年轻了一天

    用@JsonFormat(pattern = \\\"yyyy-MM-dd\\\")注解,出生日期竟然年轻了一天 艺术源于生活,bug源于开发。 起因是艰苦奋战一个月, 测试及验收都顺利通过 ,上线也稳稳的 成功 。但是 毒奶 总是在不经意给你灌上,部分的用户的 身份证和出生日期对不上,总是少一天 。 开始以为 前端显

    2024年02月11日
    浏览(40)
  • Js各种时间转换问题(YYYY-MM-DD 时间戳 中国标准时间)

    指定格式 YYYY-MM-DD HH:MM:SS 时间戳 中国标准时间 Sat Jan 30 2022 08:26:26 GMT+0800 (中国标准时间) new Date() 获得系统当前时间就会是这种形式 时间戳转换为 yyyy-mm-dd或yyyy-MM-dd HH-mm-ss yyyy-mm-dd或yyyy-MM-dd HH-mm-ss 转为时间戳 中国标准时间转为 yyyy-mm-dd hh-mm-ss yyyy-mm-dd hh-mm-ss 转为中国标准时间

    2024年01月21日
    浏览(40)
  • 踩坑:小程序 new Date(“YYYY-MM-DD hh:mm:ss”)在ios手机上显示null

    一、发现问题: 苹果手机上进入小程序,点击picker组件选择时间日期(YYYY-MM-DD hh:mm:ss),用new Date(“YYYY-MM-DD hh:mm:ss”)转化时间格式进行比较时,变量转化后的结果为null 二、解决方案: 三、分析并查找原因: 1.在IOS中,new Date中指定的字符串还有格式,new Date(“YYYY/MM/DD hh:

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包