后台date类型转换为json字符串时,返回前台页面的是long类型的时间戳问题解决
2019-01-09 10:39
2683 查看
学习springboot框架,写个博客系统,在后台管理的日志管理中,遇到了后台查询的日期格式的结果返回到页面变成了日期的时间戳了。然后摸索了两种方法来解决。页面的显示问题如下图.
问题页面回顾:
本案例环境和框架:后端SpringBoot框架+jdk1.8,前端bootstrap3
解决方案:
解决方案分为三种:
第一种:
如果pojo(实体类)对应的字段(日期)类型为Date类型,用Jackson的注解@JsonFormat。
依赖需要的jar包是:jackson-core.jar,jackson-databind.jar,jackson-annotations.jar,如下如所示
我是SpringBoot项目,自带这三个,只要是maven项目,可以使用我提供的下面这三个jar包依赖
1.1:项目引入jackson依赖jar包
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.8</version> </dependency>
1.2:pojo实体类加注解
//设置自定义日期格式,并设置时区 @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone = "GMT+8") private Date createDate;
这个注解同样也可以打在get方法上如下
// 打在get方法上 效果一样 @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone = "GMT+8") public Date getCreateDate() { return createDate; }
1.3:第一种效果图
第二种:
如果pojo(实体类)对应的字段(日期)类型为String类型,则在set方法上用字符串截取方式。
这种就不需要引入上面那么多依赖jar包了只需要保留一个了
2.1:依赖包导入
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>
2.2:实体类编写
public class Log{ private String createDate; // set and get public String getCreateDate() { return createDate; } public void setCreateDate(String createDate) { this.createDate= createDate.substring(0,10); }
2.3:效果展示
第三种:
利用bootstarp(前端实现)
1.1修改前端js
在你需要转换的日期部分按照如下格式写
{ title: '操作时间', field: 'createDate', align: 'center', //获取日期列的值进行转换 formatter: function (value, row, index) { return changeDateFormat(value) } },
1.2:增加js方法
同时我们需要自定义这个changeDateFormat(obj)方法
//转换日期格式(时间戳转换为datetime格式) function changeDateFormat(obj) { var dateVal = obj+ ""; if (obj!= null) { var date = new Date(parseInt(dateVal.replace("/Date(", "").replace(")/", ""), 10)); var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(); var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); return date.getFullYear() + "-" + month + "-" + currentDate + " " + hours + ":" + minutes + ":" + seconds; } }
效果和上面一样.
感谢您的阅读,如果您觉得阅读本文对您有帮助,请点赞"大拇指"按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接。
相关文章推荐
- 后台date类型转换为json字符串时,返回前台页面的是long time值问题解决
- 后台date类型转换为json字符串时,返回前台页面的是long time值问题解决
- springMVC中返回json时,日期类型自动转换为long类型的时间戳的处理方案(一个配置解决)
- js前台传递json字符串数组到后台有后台转换成list集合或其他格式的问题解决
- JSON(3):Java的Date类型转换为符合json语法的字符串遇到的问题及其解决办法
- 关于java中long类型的数据转换json传到前台时丢失精度问题的解决办法
- 解决Java中Long类型转换成Json时,在Js代码调用时精度丢失的问题
- spring mvc前台时间字符串到后台Date的转换
- struts2:JSON在struts中的应用(JSP页面中将对象转换为JSON字符串提交、JSP页面中获取后台Response返回的JSON对象)
- Struts2中的JSON问题——后台返回JSON字符串到前台
- 时间戳(Long)和String,Date类型的时间在Jsp页面的转换
- jquery与后台进行数据交互--前台发单一数据对象,后台返回一个json字符串 jsp页面
- 解决SpringMvc前台传Date类型到后台报400错误问题
- jquery与后台进行数据交互--前台发单一数据对象,后台返回一个json字符串 serlet配置页面
- @requestbody接收json参数 映射到 实体类中 Date(时间日期)类型转换问题
- ajax后台返回json,后台有Date类型变量被封装进json,非正常结束问题
- spring mvc前台时间字符串到后台Date的转换
- spring mvc前台时间字符串到后台Date的转换
- Ajax前台返回JSON数据后再Controller中直接转换成类型使用,后台接收json转成实体的方法
- SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码