后台date类型转换为json字符串时,返回前台页面的是long类型的时间戳问题解决
学习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类型的时间戳问题解决的更多相关文章
- 工具请求接口参数为string类型的JSON字符串时需要加转义字符模拟测试
例如postMan传String类型的json字符串请后台接口时,需要\转义
- Jackson将对象转换为json字符串时,设置默认的时间格式
maven需要的依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifac ...
- struts2:JSON在struts中的应用(JSP页面中将对象转换为JSON字符串提交、JSP页面中获取后台Response返回的JSON对象)
JSON主要创建如下两种数据对象: 由JSON格式字符串创建,转换成JavaScript的Object对象: 由JSON格式字符串创建,转换成JavaScript的List或数组链表对象. 更多关于J ...
- SpringMVC3中返回json字符串时500 Internal Server Error的处理方案
搭建 Spring3+MyBatis+Rest+BootStrap+JBPM项目环境后,测试发现了一个操蛋的问题.使用Spring MVC的自动类型转换为JSON时,后台数据List/Map获取完全正 ...
- js如何解析后台传过来的json字符串
1.js如何解析后台传过来的json字符串? 注意:js是无法直接接收和使用json或者Php的数据,用的话会出现undefined,所以要转换一下. 方式一: var str = '{"r ...
- DataTable 对象 转换为Json 字符串
/// <summary> /// DataTable 对象 转换为Json 字符串 /// </summary> /// <param name="dt&qu ...
- JackSon将java对象转换为JSON字符串
JackSon可以将java对象转换为JSON字符串,步骤如下: 1.导入JackSon 的jar包 2.创建ObjectMapper对象 3.使用ObjectMapper对象的writeValueA ...
- (后端)JackSon将java对象转换为JSON字符串(转)
转载小金金金丶园友: JackSon可以将java对象转换为JSON字符串,步骤如下: 1.导入JackSon 的jar包 2.创建ObjectMapper对象 3.使用ObjectMapper对象的 ...
- 此类目的是防治序列化Json字符串时的循环引用问题-------最好解决方案
http://james.newtonking.com/json/help/index.html using Newtonsoft.Json;using System;using System.Col ...
随机推荐
- soj#547 bzoj5046 分糖果游戏
分析 代码 #include<bits/stdc++.h> using namespace std; #define int long long ; ][],s[],p[],v[]; si ...
- Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest
解决办法: 删除对应的jar 包下的文件 zip -d *.jar META-INF/*.RSA META-INF/*.SF
- 面试题40:最小(大)的K个数
剑指offer40题,同时这也是面试高发题目 2019.4 蚂蚁金服问道:求1000万个数据中的前K个数. 思路: 1.直接上排序算法,然后我们就取排好顺序的前K个即可.但是单考虑快排,时间复杂度也要 ...
- django4-模板,templates
如何使用templates呢? 在views.py文件中,函数或者方法通过return render(request,"userInfor.html",{"info_li ...
- VMware虚拟机重新挂载共享目录
经常遇到设置的共享目录在重启虚拟机后找不到的情况,于是写了个脚本:mount-shared-folders. 前提是你的虚拟机中已经安装了VMware的相关工具(一般装完虚拟机都会自动安装上的) #! ...
- pyppeteer模块的基本使用
pyppeteer模块的基本使用 引言 Selenium 在被使用的时候有个麻烦事,就是环境的相关配置,得安装好相关浏览器,比如 Chrome.Firefox 等等,然后还要到官方网站去下载对应的驱动 ...
- 用MR生成HFile文件格式后,数据批量导入HBase
环境hadoop cdh5.4.7 hbase1.0.0 测试数据: topsid uid roler_num typ 10 111111 255 0 在Hbase 创建t2数据库: create ...
- 使用vue配合组件--转载
1.由饿了么 UED (知乎专栏)设计的桌面端组件库已经开源,文档:Element,仓库: GitHub - ElemeFE/element: Desktop UI elements for Vue. ...
- RabbitMq--2--安装
简单说下个人的理解,mq就是一个消息代理,负责异步消息转发,可以很大程度缓解服务器压力,并且防止服务器宕机影响业务等. 安装: 环境:centos7 1).首先需要安装erlang #wget htt ...
- C#编程--第三天
语句 语句是指程序命令,都是按照顺序执行的.语句在程序中的执行顺序称之为"控制流"或"执行流".根据程序对运行时所收到的输入的响应,在程序每次运行时程序流可能有 ...