查询时间格式问题,小白求解

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")都无效。求解

17个回答

Date存储的本质其实是存储长整型的时间戳。
我对你的查询出来的时间格式是XXXXX认为的是你查询的数据显示到前端(jsp)还是XXXXX,尽管使用了@DateTimeFormat or @JsonFormat。但是要注意的是这些都是指前端页面传输过来的数据并对这些数据进行相应的格式化解析。
如果在前端(jsp)的显示你可以使用jstl相关的fmt:formatDate标签进行解析

qq_35476379
l丶bk 明白了,谢谢。
接近 3 年之前 回复
u013504720
fruit_dish 回复l丶bk: 你可以自己验证下,加上注解后返回JSON数据,你需要的字段的格式是否解析成功。@JsonFormat我是验证过可以解析的。
接近 3 年之前 回复
u013504720
fruit_dish 回复l丶bk: @DateTimeFormat与@JsonFormat的共同点都是告诉框架如何解析你输入的数据,例如我输入格式是yyyy-MM-dd,我注解以后希望框架能够自动解析这样的格式,而不是需要自己手动的拿到这个时间的字符串,然后再像一楼那样进行时间格式的一个转换。但是你的情况是返回数据到前端,你已经查出数据是时间类型了,传输的就是时间戳,你传到JSP页面你拿到的也是一个Date类型,所以在你查出数据以后如何解析是你自己需要解决的问题。还有就是@JsonFormat不是没有用,而是你需要返回的数据是JSON的时候会将时间转换成你需要的JSON格式。
接近 3 年之前 回复
qq_35476379
l丶bk 根据你的方法试了一下。成功了。很感谢。 但我还想问下,那为什么@DateTimeFormat or @JsonFormat 没作用呢。我查询返回的类型是实体类对象,正常应该查出来就是我要的格式不是吗?
接近 3 年之前 回复

实在不行,可以从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);
    }
qq_35476379
l丶bk 谢谢。
接近 3 年之前 回复

楼上说的对,直接在代码里格式化,就可以了

在mapper.xml里的类型用 jdbcType="TIMESTAMP"

qq_35476379
l丶bk 本身是这样,可以看下采纳答案。 谢谢
接近 3 年之前 回复

如果是Mysql可以直接对查询结果进行格式化 DATE_FORMAT(字段名,'%Y-%m-%d %T')

qq_35476379
l丶bk 谢谢
接近 3 年之前 回复

用JAVA写一个日期工具类转一下

如果是Mysql可以直接对查询结果进行格式化 DATE_FORMAT(字段名,'%Y-%m-%d %T')

qq_35476379
l丶bk 恩。谢谢
接近 3 年之前 回复

你这样写就可以了:

用另外一个字段(不存数据库),来返回格式化后的日期,或者,你数据库里面用varchar格式。

 public String getCreateDateStr(){
    return DateUtils.formatDate(this.createDate);
}
qq_35476379
l丶bk 谢谢
接近 3 年之前 回复
    <!-- 对象映射 -->
    <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中配个这个

qq_35476379
l丶bk 我用的是jeesite,我查不到对应的配置。
接近 3 年之前 回复

1、可以写个时间转换器
2、可以在jsp页面上用jstl表达式来规定格式

qq_35476379
l丶bk 谢谢
接近 3 年之前 回复
共17条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐