一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springboot DTO字符字段與日期字段的轉換問題

springboot DTO字符字段與日期字段的轉換問題

2020-07-18 12:07張占嶺 Java教程

這篇文章主要介紹了springboot DTO字符字段與日期字段的轉換問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

不會自動轉換string與date

主要是這個意思,前端提交的JSON里,日期是一個字符串,而對應后端的實體里,它是一個Date的日期,這兩個在默認情況下是不能自動轉換的,我們先看一下實體
實體

?
1
2
3
4
5
6
7
8
public class UserDTO {
 private String name;
 private String email;
 private Boolean sex;
 private Double total;
 private BigDecimal totalMoney;
 private Date birthday;
}

客戶端提交的json對象

?
1
2
3
4
5
6
7
{
 "email": null,
 "name": "lr",
 "total":3,
 "totalMoney":1,
 "birthday":"1983-03-18"
}

服務端收到的實體DTO是正常的

springboot DTO字符字段與日期字段的轉換問題

而在服務端響應的結果卻不是日期,而是一個時間戳

?
1
2
3
4
5
6
7
8
{
 "name": "lr",
 "email": null,
 "sex": null,
 "total": "3.00",
 "totalMoney": 0.0000,
 "birthday": 416793600000
}

我們看到日期型的birthday在響應到前端還是一個時間戳,如果我們希望響應到前端是一個日期,那需要為這個DTO實體添加JsonFormat注解

?
1
2
3
4
5
6
7
8
9
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;
}

也可以通過配置文件進行設置

?
1
2
3
4
spring:
 jackson.date-format: yyyy-MM-dd
 jackson.time-zone: GMT+8
 jackson.serialization.write-dates-as-timestamps: false

這樣,在服務端向前端響應結果就變成了

springboot DTO字符字段與日期字段的轉換問題

使用configureMessageConverters方法全局處理

springboot2.x可以實現WebMvcConfigurer 接口,然后重寫configureMessageConverters來達到定制化日期序列化的格式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
Configuration
@EnableWebMvc //覆蓋默認的配置
public class WebMvcConfigurerImpl implements WebMvcConfigurer {
 @Override
 public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
  ObjectMapper objectMapper = new ObjectMapper();
 
  // 時間格式化
  objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));//只能是一個日期格式化,多個會復蓋
 }
}

springboot DTO字符字段與日期字段的轉換問題

如上圖所示,如果希望為getup字段添加時分秒,需要在DTO上使用@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")注解即可。

總結

到此這篇關于springboot~DTO字符字段與日期字段的轉換問題的文章就介紹到這了,更多相關springboot字符字段與日期字段轉換內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/lori/archive/2020/07/17/13330141.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩欧美三级视频 | 男人的天堂在线 | 国产成+人+综合+欧美 亚洲 | 日本中文字幕黑人借宿影片 | 双性np肉文 | 999热这里只有精品 999久久久免费精品国产牛牛 | 九九精品视频在线播放 | 龟甲情感超市全文阅读 小说 | 欧美人与禽杂交大片 | 免费稚嫩福利 | 俺去啦最新 | 国产精品欧美一区二区 | 欧美亚洲另类在线观看 | 99手机在线视频 | 和两个男人玩3p好爽视频 | 性奶乳妇 | 摸进老太婆的裤裆小说 | 亚洲精品视频一区 | 强漂亮白丝女教师小说 | 色图大全 | 日韩成人在线影院 | 亚洲天堂99| 任我鲁精品视频精品 | 国产亚洲自愉自愉 | 朝鲜美女免费一级毛片 | 日韩小视频在线观看 | 男男按摩1069gⅴ| 全日爱韩国视频在线观看 | 日本人与黑人做爰视频网站 | 国产精品久热 | 女人特黄大aaaaaa大片 | 精品国产区一区二区三区在线观看 | 精品久久免费观看 | 国产一区二区三区毛片 | 我被男人下药添得好爽 | 五月天在线视频观看 | 美女脱衣有肉 | 5555kkkk香蕉在线观看 | 久久99影院 | 国产动作大片 | 91se精品免费观看 |