问题描述
使用SSM返回Json对象时,发现数据库中datetime的数据字段返回的是date时间戳,如图
在这里插入图片描述
查看所涉及到实体时间类型为如图

在这里插入图片描述

实体中设置的为date时间戳类型,在页面中需要显示的是"yyyy-MM-dd HH:mm:ss"这种时间格式

解决方案
将实体中的date时间戳改为指定datetime类型时间字段

在SSM进行时间格式转换时,需要在实体中加上如下

@JsonFormat(pattern=“yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”) ,即可将date返回的对象为指定的类型。

同时需要在SSM项目中引入JsonFormat方法的包,如下在pom.xml 中加入

        <dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.4.2</version>
		</dependency> 
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.8.5</version>
		</dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.9</version>
        </dependency>

在SSM的是实体中找到该字段的get方法,
在这里插入图片描述
再次查询时就会将date字段转换为datetime时间字段,如图
在这里插入图片描述
以上是使用JsonFormat从数据库中读取的时间格式转换

将使用date类型的时间以datetime类型存储到数据库
解决方案如同上述

在实体中的date时间变量中加上如下包,如图
在这里插入图片描述
即可实现上述问题

整理

1、在实体中使用date类型set数据库中的datetime类型,并在页面中以"yyyy-MM-dd HH:mm:ss"显示,需要使用@JsonFormat(pattern=“yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”) ,对date变量进行注解

2、将date类型以datetime格式存储到数据库,需要使用到@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”) ,对date变量进行注解

3、对于页面和数据库中的时间类型转换中,最好在数据库中都是用相同时间类型,比如都是用date类型,然后在SSM项目中对date类型转换为所需求的格式

具体关于实体时间类型date和数据库时间datetime类型的转换解决方案请转至

https://blog.csdn.net/zimojiang/article/details/83412965

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐