My97DatePicker显示日期的奇葩问题(后缀.0)

问题描述

项目运行环境:
数据库=>mysql5.0
jdk=>jdk1.8
服务器=>tomcat8.0
之前做项目就遇到过这个问题,忘记记在哪里了,这次做项目又遇到了这个奇葩问题。因为My97DatePicker中的日期回显的时候不能直接用
Date类型的数据,所以我们就要先把Date类型的数据转换成String类型的,然后再传递到前台去展示。刚开始转换的代码如下

staff.setAccessionDateString(staff.getAccessionDate()==null?null:staff.getAccessionDate().toString());
            staff.setDimissionDateString(staff.getDimissionDate()==null?null:staff.getDimissionDate().toString());

前台展示时候发现如下奇葩情况,最后会多一个.0的后缀
这里写图片描述

问题解决方案

  1. 后来经过调试发现如下图中红圈标示的,在Date类型toString后就变成了带后缀.0的。
    这里写图片描述

  2. 紧接着再往前调试,发现Date类型的变量值已经也是带.0后缀的了,如下图

这里写图片描述
3. 最后把sql拷贝出来执行了一下,发现格式是正常的如下图

这里写图片描述
经过以上调试分析,应该是在从数据库查询出来之后映射的时候发生了变化。
解决方案一:
就是在Date转换成String的时候直接用toString方法,我们用如下代码进行转换。

staff.setAccessionDateString(staff.getAccessionDate()==null?null:DateUtil.format(staff.getAccessionDate(), null));
            staff.setDimissionDateString(staff.getDimissionDate()==null?null:DateUtil.format(staff.getDimissionDate(), null));

上述代码中的DateUtil的format方法具体实现如下

 public static String format(Date date, String... pattern) {
        String myPattern = "yyyy-MM-dd HH:mm:ss";

        if (date == null) {
            return null;
        }

        if (pattern != null && pattern.length > 0) {
            myPattern = pattern[0];
        }

        SimpleDateFormat df = new SimpleDateFormat(myPattern);
        return df.format(date);
    }

经过这么改造后发现这个奇葩的后缀.0就神奇的消失了。
目前暂时发现这一种解决方案,其他解决方案欢迎各位同仁来补充…..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值