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

SpringBoot時(shí)間格式化的方法小結(jié)

 更新時(shí)間:2023年10月08日 08:58:06   作者:xyy123  
SpringBoot中的時(shí)間格式化通常指的是將Java中的日期時(shí)間類型轉(zhuǎn)換為指定格式的字符串,或者將字符串類型的時(shí)間解析為Java中的日期時(shí)間類型,本文小編將給大家詳細(xì)總結(jié)了SpringBoot時(shí)間格式化的方法,剛興趣的小伙伴跟著小編一起來(lái)看看吧

方法一:屬性上加注解

時(shí)間屬性上添加注解:@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

@Data  
@Builder  
@NoArgsConstructor  
@AllArgsConstructor  
public class Employee implements Serializable {  
    private Long id;  
    private String username;  
    private String name;  
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")  
    private LocalDateTime createTime;  
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")  
    private LocalDateTime updateTime;  
}

方法二: 方法參數(shù)中添加注解@DateTimeForm

/**  
* 營(yíng)業(yè)額統(tǒng)計(jì)  
* @param begin  
* @param end  
* @return  
*/  
@GetMapping("/turnoverStatistics")  
@ApiOperation("營(yíng)業(yè)額統(tǒng)計(jì)")  
public Result<TurnoverReportVO> turnoverStatistics(  
    @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,  
    @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end){  
    log.info("營(yíng)業(yè)額數(shù)據(jù)統(tǒng)計(jì):{},{}",begin,end);  
    return Result.success(reportService.getTurnoverStatistics(begin,end));  
}

方法三:拓展spring mvc的消息轉(zhuǎn)換器

重寫(xiě)父類方法extendMessageConverters

@Configuration  
@Slf4j  
public class WebMvcConfiguration extends WebMvcConfigurationSupport {  
    @Autowired  
    private JwtTokenAdminInterceptor jwtTokenAdminInterceptor;  
    @Autowired  
    private JwtTokenUserInterceptor jwtTokenUserInterceptor;  
    /**  
    * 注冊(cè)自定義攔截器  
    * @param registry  
    */  
    protected void addInterceptors(InterceptorRegistry registry) {  
        log.info("開(kāi)始注冊(cè)自定義攔截器...");  
        registry.addInterceptor(jwtTokenAdminInterceptor)  
        .addPathPatterns("/admin/**")  
        .excludePathPatterns("/admin/employee/login");  
        registry.addInterceptor(jwtTokenUserInterceptor)  
        .addPathPatterns("/user/**")  
        .excludePathPatterns("/user/user/login")  
        .excludePathPatterns("/user/shop/status");  
    }  
    /**  
    * 設(shè)置靜態(tài)資源映射,主要是訪問(wèn)接口文檔(html、js、css)  
    * @param registry  
    */  
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {  
    log.info("開(kāi)始設(shè)置靜態(tài)資源映射...");  
    registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");  
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");  
    }  
    /**  
    * 擴(kuò)展Spring MVC框架的消息轉(zhuǎn)化器  
    * @param converters  
    */  
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {  
        log.info("擴(kuò)展消息轉(zhuǎn)換器...");  
        //創(chuàng)建一個(gè)消息轉(zhuǎn)換器對(duì)象  
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();  
        //需要為消息轉(zhuǎn)換器設(shè)置一個(gè)對(duì)象轉(zhuǎn)換器,對(duì)象轉(zhuǎn)換器可以將Java對(duì)象序列化為json數(shù)據(jù)  
        converter.setObjectMapper(new JacksonObjectMapper());  
        //將自己的消息轉(zhuǎn)化器加入容器中  
        converters.add(0,converter);  
    }  
}

創(chuàng)建對(duì)象轉(zhuǎn)換器JacksonObjectMapper

/**  
* 對(duì)象映射器:基于jackson將Java對(duì)象轉(zhuǎn)為json,或者將json轉(zhuǎn)為Java對(duì)象  
* 將JSON解析為Java對(duì)象的過(guò)程稱為 [從JSON反序列化Java對(duì)象]  
* 從Java對(duì)象生成JSON的過(guò)程稱為 [序列化Java對(duì)象到JSON]  
*/  
public class JacksonObjectMapper extends ObjectMapper {  
    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";  
    //public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";  
    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";  
    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";  
    public JacksonObjectMapper() {  
    super();  
    //收到未知屬性時(shí)不報(bào)異常  
    this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);  
    //反序列化時(shí),屬性不存在的兼容處理  
    this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);  
    SimpleModule simpleModule = new SimpleModule()  
    .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))  
    .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))  
    .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))  
    .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))  
    .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))  
    .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));  
    //注冊(cè)功能模塊 例如,可以添加自定義序列化器和反序列化器  
    this.registerModule(simpleModule);  
    }  
}

目錄結(jié)構(gòu)

以上就是SpringBoot時(shí)間格式化的方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot時(shí)間格式化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java源碼解析HashMap的resize函數(shù)

    Java源碼解析HashMap的resize函數(shù)

    今天小編就為大家分享一篇關(guān)于Java源碼解析HashMap的resize函數(shù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之健身器材商城系統(tǒng)的實(shí)現(xiàn)

    Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之健身器材商城系統(tǒng)的實(shí)現(xiàn)

    只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Jdbc+Servlet+Ajax+Fileupload+mysql實(shí)現(xiàn)健身器材商城系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2022-03-03
  • 一次排查@CacheEvict注解失效的經(jīng)歷及解決

    一次排查@CacheEvict注解失效的經(jīng)歷及解決

    這篇文章主要介紹了一次排查@CacheEvict注解失效的經(jīng)歷及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中的動(dòng)態(tài)數(shù)組和棧Vector Stack使用區(qū)別介紹

    Java中的動(dòng)態(tài)數(shù)組和棧Vector Stack使用區(qū)別介紹

    這篇文章主要為大家介紹了Java中的動(dòng)態(tài)數(shù)組和棧Vector Stack使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • java實(shí)現(xiàn)jdbc批量插入數(shù)據(jù)

    java實(shí)現(xiàn)jdbc批量插入數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)jdbc批量插入數(shù)據(jù),三種JDBC批量插入編程方法進(jìn)行比較,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • java限流算法詳細(xì)

    java限流算法詳細(xì)

    這篇文章詳細(xì)的介紹了java限流算法常用到的算法計(jì)數(shù)算法、漏桶算法、令牌桶等算法的相關(guān)資料,需要的朋友可以參考下文,希望本篇文章能幫助到您
    2021-09-09
  • Java Spring之@Async原理案例詳解

    Java Spring之@Async原理案例詳解

    這篇文章主要介紹了Java Spring之@Async原理案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java ResourceBundle案例詳解

    Java ResourceBundle案例詳解

    這篇文章主要介紹了Java ResourceBundle案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解

    RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解

    這篇文章主要為大家介紹了RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 2020最新 idea下載、安裝與創(chuàng)建項(xiàng)目測(cè)試的教程圖解

    2020最新 idea下載、安裝與創(chuàng)建項(xiàng)目測(cè)試的教程圖解

    這篇文章主要介紹了2020最新 idea下載、安裝與創(chuàng)建項(xiàng)目測(cè)試的教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論