ssm框架, 查询出来的时间格式是Wed Dec 06 00:37:57 CST 2017 。
数据库字段设置的是datetime,entity里类型是Date 。用了注解@JsonFormat(pattern = "yyyy-MM-dd HH-mm-
ss")
和@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")都无效。求解
Date存储的本质其实是存储长整型的时间戳。
我对你的查询出来的时间格式是XXXXX认为的是你查询的数据显示到前端(jsp)还是XXXXX,尽管使用了@DateTimeFormat or @JsonFormat。但是要注意的是这些都是指前端页面传输过来的数据并对这些数据进行相应的格式化解析。
如果在前端(jsp)的显示你可以使用jstl相关的fmt:formatDate标签进行解析
实在不行,可以从java转
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(date);
System.out.println(dateStr);
}
楼上说的对,直接在代码里格式化,就可以了
在mapper.xml里的类型用 jdbcType="TIMESTAMP"
如果是Mysql可以直接对查询结果进行格式化 DATE_FORMAT(字段名,'%Y-%m-%d %T')
用JAVA写一个日期工具类转一下
如果是Mysql可以直接对查询结果进行格式化 DATE_FORMAT(字段名,'%Y-%m-%d %T')
你这样写就可以了:
用另外一个字段(不存数据库),来返回格式化后的日期,或者,你数据库里面用varchar格式。
public String getCreateDateStr(){
return DateUtils.formatDate(this.createDate);
}
<!-- 对象映射 -->
<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg index="0" value="yyyy-MM-dd HH:mm:ss" />
</bean>
</property>
<property name="serializationInclusion">
<value type="com.fasterxml.jackson.annotation.JsonInclude.Include">ALWAYS</value>
</property>
</bean>
在xml中配个这个
1、可以写个时间转换器
2、可以在jsp页面上用jstl表达式来规定格式
NOW()
CURDATE() 当前日期
CURTIME() 当前时间
DATE_ADD()时间加 select date_add(‘2032-2-23’,interval 213 day)
DATEDIFF()时间差 select DATEDIFF(‘2012-2-13’,’1992-2-1’)
DATE_FORMAT()时间格式化 SELECT DATE_FORMAT(‘2013-2-12’,’%m%d%Y’)
支持使用代码里格式化的方式-
用sql转 TO_DATE(需要转的字段 , 'YYYY-MM-DD HH24:MI')
本人在项目中也遇到同样的问题,如果数据库可以修改的话,请修改成date,问题基本解决
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat( "yyyy-MM-dd" );
java.util.Date currentTime = new java.util.Date();//得到当前系统时间
String strdate1 = formatter.format( currentTime ); //将日期时间格式化
String strdate2 = currentTime.toString(); //将Date型日期时间转换成字符串形式
在jsp里通过jstl进行转换就行了
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
写个工具类
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
/**
Title: DateConverter
Description:
Company: www.itcast.cn
@version 1.0
*/
public class DateConverter implements Converter {
@Override
public Date convert(String source) {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse(source);
return date;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
然后在springmvc.xml 中配置
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="cn.itcast.core.converter.DateConverter"/>
</set>
</property>
</bean>