数据库读取时间字段后面多了一个".0"

版权声明:整理不易,转载请注明出处。 https://blog.csdn.net/linmengmeng_1314/article/details/83069714

数据库读取时间字段后面多了一个".0"


今天在做一个数据查询时,发现查出来的时间展示到jsp页面是上的时候多了一个“.0”,这个就很不正常了。

在查询之后才发现原来是数据库的字段格式是datetime类型,而实体类使用的是String类型,而datetime类型精确到毫秒,由于数据库里的值是:2018-09-19 17:59:51,只精确到秒,所以在查询出来的时候,mysql自动将毫秒位补了一个.0,我是这么理解的,不知道底层的原理是怎么回事。

解决办法

  1. 在bean里的get方法里做格式化,也就是用String的replace方法,替换".0"为"" (我采用的就是这种)
public String getPay_time() {
		String pay_time=this.pay_time.replace(".0","");
		 return pay_time;
	}
  1. 把数据库里的时间改成date类型,如果不想改类型的话,在插入数据的时候,要保证这个时间字段的毫秒位不为零即可。

  2. 我看到网上有人说在页面渲染的时候格式化,我知道当查出来的是毫秒的时候,也就是时间显示时英文的,或者一串毫秒数字的,在jsp页面使用fmt标签,可以直接对数据进行格式化比如这样:<td><fmt:formatDate type="both" value="${sa.regTime }" /></td>,记得引入fmt标签库<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>。但是如果你跟我一样,bean中的时间类型是String的话,使用fmt标签会报错,提示不能讲String类型转换为Date类型。那么第一种方法或许会更方便些。

猜你喜欢

转载自blog.csdn.net/linmengmeng_1314/article/details/83069714