欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中的實(shí)體類(lèi)時(shí)間格式化

 更新時(shí)間:2022年06月27日 11:15:46   作者:Try?and?try?again  
這篇文章主要介紹了java中的實(shí)體類(lèi)時(shí)間格式化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

實(shí)體類(lèi)時(shí)間格式化

java 實(shí)體類(lèi) 時(shí)間格式化注解

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date time;
  • pattern:時(shí)區(qū)
  • timezone:時(shí)區(qū)

@JsonFormat 默認(rèn)是標(biāo)準(zhǔn)時(shí)區(qū)的時(shí)間,多出現(xiàn)少8小時(shí)的情況

使用時(shí),按需求加上時(shí)區(qū) 北京時(shí)間 東八區(qū) timezone=”GMT+8”

作用:后臺(tái)的時(shí)間 格式化 發(fā)送到前臺(tái)

@DateTimeFormat 接受前臺(tái)的時(shí)間格式 傳到后臺(tái)的格式

實(shí)體類(lèi)時(shí)間類(lèi)型屬性常用注解

假如有如下實(shí)體類(lèi):

import java.util.Date;
 
public class DateVo {
    private Date date;
 
    public void setDate(Date date){
        this.date = date;
    }
    public Date getDate(){
        return date;
    }
}

提供如下接口:

@RestController
@RequestMapping("/date")
public class DateController {
 
    @RequestMapping("test")
    public DateVo getDate(DateVo vo){
        System.out.println(vo.getDate());
 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = sdf.format(vo.getDate());
        System.out.println(date);
 
        DateVo dateVo = new DateVo();
        dateVo.setDate(new Date());
        return dateVo;
    }
}

直接訪問(wèn)接口(參數(shù)vo: 2020-12-25 11:22:33),會(huì)拋出以下異常:

理由很簡(jiǎn)單:類(lèi)型參數(shù)不匹配,傳入?yún)?shù)vo的date為字符串類(lèi)型,而要求時(shí)Date類(lèi)型,這就需要入?yún)⒏袷交?/p>

注解一:DateTimeFormt(入?yún)⒏袷交?

注解@DateTimeFormt是由spring框架提供的,作用就是實(shí)現(xiàn)在入?yún)⒏袷交^(guò)程中對(duì)時(shí)間類(lèi)型參數(shù)指定格式。

對(duì)上述實(shí)體類(lèi)做如下修改:

public class DateVo {
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date date;
 
    public void setDate(Date date){
        this.date = date;
    }
    public Date getDate(){
        return date;
    }
}

再次訪問(wèn)接口(參數(shù)vo: 2020-12-25 11:22:33),訪問(wèn)成功,在控制臺(tái)會(huì)打印如下內(nèi)容:

Fri Dec 25 11:22:33 CST 2020

2020-12-25 11:22:33 

同時(shí)向前端返回:

"2020-12-25T03:40:26.625+00:00"

對(duì)于這個(gè)返回內(nèi)容可能不符合前端時(shí)間格式要求,需要對(duì)其進(jìn)行出參格式化

注解二:JsonFormt(出參格式化)

注解@JsonFormt是由jackson提供的,由于spring框架中默認(rèn)集成的json工具是jackson(國(guó)內(nèi)使用更廣泛的fastjson,其提供注解@JSONField),因此使用注解@JsonFormt不需要另外引入依賴(lài),再次對(duì)實(shí)體類(lèi)修改:

public class DateVo {
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(
    	pattern = "yyyy-MM-dd HH:mm:ss",
   	 	timezone = "GMT+8"
	)
	private Date date;
 
    public void setDate(Date date){
        this.date = date;
    }
    public Date getDate(){
        return date;
    }
}

繼續(xù)訪問(wèn)接口(參數(shù)vo: 2020-12-25 11:22:33)返回:

2020-12-25 11:40:26

注意:在使用注解@JsonFormt時(shí)必須要指定時(shí)區(qū),默認(rèn)情況下為0時(shí)區(qū),于北京時(shí)間(東8時(shí)區(qū))相差8個(gè)小時(shí)

注解三:JSONField(出參格式化)

在國(guó)內(nèi)使用更多是Alibaba 開(kāi)源的fasejson,其同樣提供了指定時(shí)間格式的注解。使用spring框架開(kāi)發(fā)時(shí)需要注意的是spring框架中沒(méi)有集成fastjson,因此需要在pom文件中引入其依賴(lài),實(shí)體類(lèi)修改如下:

public class DateVo {
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
	private Date date;
 
    public void setDate(Date date){
        this.date = date;
    }
    public Date getDate(){
        return date;
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Java創(chuàng)建數(shù)據(jù)透視表并導(dǎo)出為PDF的方法

    使用Java創(chuàng)建數(shù)據(jù)透視表并導(dǎo)出為PDF的方法

    數(shù)據(jù)透視分析是一種強(qiáng)大的工具,可以幫助我們從大量數(shù)據(jù)中提取有用信息并進(jìn)行深入分析,本文將介紹如何使用Java來(lái)構(gòu)建PivotTable以及實(shí)現(xiàn)數(shù)據(jù)透視分析,并將其導(dǎo)出為PDF
    2023-10-10
  • java項(xiàng)目中classpath的理解

    java項(xiàng)目中classpath的理解

    這篇文章介紹了java項(xiàng)目中classpath的理解,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之單向鏈表

    Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之單向鏈表

    單向鏈表特點(diǎn)是鏈表的鏈接方向是單向的,訪問(wèn)要通過(guò)順序讀取從頭部開(kāi)始。鏈表是使用指針構(gòu)造的列表,是由一個(gè)個(gè)結(jié)點(diǎn)組裝起來(lái)的,又稱(chēng)為結(jié)點(diǎn)列表。其中每個(gè)結(jié)點(diǎn)都有指針成員變量指向列表中的下一個(gè)結(jié)點(diǎn),head指針指向第一個(gè)結(jié)點(diǎn)稱(chēng)為表頭,而終止于最后一個(gè)指向nuLL的指針
    2022-02-02
  • Spring HandlerInterceptor實(shí)現(xiàn)原理代碼解析

    Spring HandlerInterceptor實(shí)現(xiàn)原理代碼解析

    這篇文章主要介紹了Spring HandlerInterceptor實(shí)現(xiàn)原理代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 淺談Java非阻塞同步機(jī)制和CAS

    淺談Java非阻塞同步機(jī)制和CAS

    我們知道在java 5之前同步是通過(guò)Synchronized關(guān)鍵字來(lái)實(shí)現(xiàn)的,在java 5之后,java.util.concurrent包里面添加了很多性能更加強(qiáng)大的同步類(lèi)。這些強(qiáng)大的類(lèi)中很多都實(shí)現(xiàn)了非阻塞的同步機(jī)制從而幫助其提升性能。
    2021-06-06
  • SpringBoot核心@SpringBootApplication使用介紹

    SpringBoot核心@SpringBootApplication使用介紹

    這篇文章主要介紹了SpringBoot核心@SpringBootApplication的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Mybatis?Mapper中多參數(shù)方法不使用@param注解報(bào)錯(cuò)的解決

    Mybatis?Mapper中多參數(shù)方法不使用@param注解報(bào)錯(cuò)的解決

    這篇文章主要介紹了Mybatis?Mapper中多參數(shù)方法不使用@param注解報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • Java中ArrayList和SubList的坑面試題

    Java中ArrayList和SubList的坑面試題

    集合是Java開(kāi)發(fā)日常開(kāi)發(fā)中經(jīng)常會(huì)使用到的,下面這篇文章主要給大家介紹了關(guān)于Java中ArrayList和SubList的坑面試題,需要的朋友可以參考下
    2022-05-05
  • java多線程導(dǎo)入excel的方法

    java多線程導(dǎo)入excel的方法

    最近項(xiàng)目寫(xiě)了poi導(dǎo)入excel數(shù)據(jù)到數(shù)據(jù)庫(kù),想把學(xué)到的知識(shí)用于實(shí)踐,于是使用多線程方式導(dǎo)入excel,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 說(shuō)說(shuō)字符串轉(zhuǎn) OffSetDateTime 你真的會(huì)用嗎

    說(shuō)說(shuō)字符串轉(zhuǎn) OffSetDateTime 你真的會(huì)用嗎

    這篇文章主要介紹了字符串轉(zhuǎn) OffSetDateTime 你真的會(huì)用嗎?具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論