java http头 字符串转日期_springboot~DTO字符字段与日期字段的转换问题
不会自动转换string与date
主要是这个意思,前端提交的JSON里,日期是一个字符串,而对应后端的实体里,它是一个Date的日期,这两个在默认情况下是不能自动转换的,我们先看一下实体
实体
public class UserDTO {
private String name;
private String email;
private Boolean sex;
private Double total;
private BigDecimal totalMoney;
private Date birthday;
}
客户端提交的json对象
{
"email": null,
"name": "lr",
"total":3,
"totalMoney":1,
"birthday":"1983-03-18"
}
服务端收到的实体DTO是正常的
而在服务端响应的结果却不是日期,而是一个时间戳
{
"name": "lr",
"email": null,
"sex": null,
"total": "3.00",
"totalMoney": 0.0000,
"birthday": 416793600000
}
我们看到日期型的birthday在响应到前端还是一个时间戳,如果我们希望响应到前端是一个日期,那需要为这个DTO实体添加JsonFormat注解
public class UserDTO {
private String name;
private String email;
private Boolean sex;
private Double total;
private BigDecimal totalMoney;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date birthday;
}
也可以通过配置文件进行设置
spring:
jackson.date-format: yyyy-MM-dd
jackson.time-zone: GMT+8
jackson.serialization.write-dates-as-timestamps: false
这样,在服务端向前端响应结果就变成了
使用configureMessageConverters方法全局处理
springboot2.x可以实现WebMvcConfigurer 接口,然后重写configureMessageConverters来达到定制化日期序列化的格式:
Configuration
@EnableWebMvc //覆盖默认的配置
public class WebMvcConfigurerImpl implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List> converters) {
MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
// 时间格式化
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));//只能是一个日期格式化,多个会复盖
}
}
如上图所示,如果希望为getup字段添加时分秒,需要在DTO上使用@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")注解即可。
java http头 字符串转日期_springboot~DTO字符字段与日期字段的转换问题相关推荐
- Java判断一个字符串中是否包含中文字符工具类
Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...
- java entity转dto_java 使用反射在dto和entity 实体类之间进行转换
public class Utils { /** * 将dto和entity之间的属性互相转换,dto中属性一般为String等基本类型, * 但是entity中可能有复合主键等复杂类型,需要注意同名 ...
- Java中操作字符串的工具类-判空、截取、格式化、转换驼峰、转集合和list、是否包含
场景 某些常用的对字符串进行处理的方法抽离出来成工具类,方便在多处应用. 常用的操作为: 判断是否为空 截取字符串 格式化文本 字符串转set 字符串转list 下划线转驼峰命名 是否包含字符串 注: ...
- Java给定一个字符串数组,判断每个字符出现次数
题目要求:给定一个字符串,判断每个字符出现多少次? 解决思路:利用Map的特性:即Map集合中如果两个key(键)值是一样相同的,那么,后放(put)入的值会将前面存在的value(值)替换掉,也就是 ...
- java截取指定字符串中的某段字符
利用字符串的substring函数来进行截取. 其中,substring函数有两个参数: 1.第一个参数是开始截取的字符位置.(从0开始) 2.第二个参数是结束字符的位置+1.(从0开始) index ...
- [java] 找出字符串中出现最多的字符和出现的次数
逛园子看到一童鞋做的华为上机题目,写来好长的代码,懒得看,感觉不可能这么难,于是动手敲了下. import java.util.Scanner;public class StringTest {/** ...
- java indexof 通配符,字符串与含有通配符‘*’的字符串匹配(非正则表达式)
顺利找到工作之后,每天勤勤恳恳的上班中... 项目需要搜索含有通配符的文件名的文件,*号表示任意多字符.这里应该只处理英文. 如此简单的要求,还是不要用正则表达式,一是简单,而是正则表达式感觉杀鸡用了 ...
- Java中截取字符串中小数点前面的字符
1.通过下标获取 String number = "2563.2154";int index = number.indexOf(".");String intN ...
- 在java中除去字符串(String)中的换行字符(\r \n \t)
我们先来看几个例子: 例1: public class Test { public static void main(String[] args) { String s = "'sds gd ...
最新文章
- JQuery EasyUi控件值的获取与设置
- 提高 Java 代码质量
- 数据结构-求一个字符串中的某个子串(C语言)
- 在SpringBoot中使用redis实现分布式锁
- Linux设备驱动开发概述
- Unbuntu 下安装node 环境
- Scrum 项目4.0--软件工程
- 用RAII技术管理资源及其泛型实现
- swift入门之TableView
- eventfd-aio-test.c
- python Raw I/O
- 子级Repeater获取 父级Repeater 中的值
- office2007每次打开都配置进度_每次打开excel2007都要配置进度怎么办?
- 985研究生被小公司领导留了3年,【全栈最全Java框架总结
- TNF8SLNO 华为OSN1800全新4路STM-16/8路STM-4/8路STM-1业务板
- 2017 EC-Final A Chat Grou
- 使用 Exact Audio Copy 抓取 CD 音轨保存为 FLAC 格式并填入元数据。
- 进程的切换——switch_to函数
- 计算机领域中的CAE,CAE
- [蓝桥杯]连号区间数[题目详解]
热门文章
- Cloud一分钟 | 华为云、腾讯云、阿里云中标「央视2018年租赁公有云服务」项目...
- 与Serverless 的第一次亲密接触
- dataframe iloc_如何使用iloc和loc 对Pandas Dataframe进行索引和切片
- html代码style图片width,HTML Style columnWidth用法及代码示例
- java 快速读文件_java快速读取文件
- Zookeeper UI管理界面安装
- (vue基础试炼_05)简单组件之间的传值
- 04_SSM整合ActiveMQ支持多种类型消息
- 加密相关(对称加密、非对称加密、信息摘要、数字签名、CA数字证书)
- AOP+自定义注解 实现service统一的异常信息处理