国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

日期格式化的最佳實(shí)踐:如何在Java中處理日期格式化

這篇具有很好參考價(jià)值的文章主要介紹了日期格式化的最佳實(shí)踐:如何在Java中處理日期格式化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

當(dāng)涉及到日期格式化時(shí),了解正確的方式和最佳實(shí)踐是至關(guān)重要的。
日期格式化是將日期轉(zhuǎn)換為特定格式的過(guò)程,以便在應(yīng)用程序開(kāi)發(fā)中更好地展示、存儲(chǔ)或交互。
以下內(nèi)容展示常用的三種方式


一、使用format()方法

在Java中,你可以使用java.time.format.DateTimeFormatter類來(lái)格式化日期,并將格式化后的日期字符串返回給前端。
以下是一個(gè)示例:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateFormattingExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        String formattedDate = date.format(formatter);
        System.out.println(formattedDate);
        // 輸出類似于 "2023-08-06" 的日期字符串
    }
}

在上述示例中,我們使用LocalDate來(lái)表示當(dāng)前日期,然后創(chuàng)建一個(gè)DateTimeFormatter對(duì)象,
指定了期望的日期格式模式(例如,"yyyy-MM-dd"代表年、月、日)。
通過(guò)format()方法,我們將日期格式化為字符串,并將其打印出來(lái)。

二、使用注解@JsonFormat

首先,確保你的項(xiàng)目中引入了Spring Boot和相關(guān)的依賴。
在你的實(shí)體類中,可以使用注解@JsonFormat來(lái)指定日期字段的格式化方式。

例如:
先定義一個(gè)用戶類:

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

@Data
public class User {
    private Long Id;
    private String name;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateDate;
}

測(cè)試調(diào)用返回User對(duì)象:

import com.example.result.Result;
import org.springframework.web.bind.annotation.*;

import java.util.Date;

@RestController
public class UserWebTest {
    @GetMapping("/getUser")
    public Result<?> aa(){
        User user = new User();
        user.setId(1L);
        user.setName("jljlm");
        user.setCreateDate(new Date());
        user.setUpdateDate(new Date());
        return Result.success(user);
    }

}

結(jié)果:
java日期格式化,java,開(kāi)發(fā)語(yǔ)言

三、使用消息轉(zhuǎn)換器

使用消息轉(zhuǎn)換器(MessageConverter)來(lái)格式化日期步驟如下:

1.定義用戶類

import lombok.Data;
import java.util.Date;

@Data
public class User {
    private Long Id;
    private String name;
    private Date createDate;
    private Date updateDate;
}

2.重寫DateSerializer 方法

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateSerializer extends JsonSerializer<Date> {

    private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        String formattedDate = formatter.format(date);
        jsonGenerator.writeString(formattedDate);
    }
}

3.定義對(duì)象映射器:


import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.deser.std.DateDeserializers;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;

/**
 * 對(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_TIME_FORMAT = "yyyy-MM-dd 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_TIME_FORMAT)))
                .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addDeserializer(Date.class,new DateDeserializers.DateDeserializer())
                .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(Date.class, new DateSerializer());


        //注冊(cè)功能模塊 例如,可以添加自定義序列化器和反序列化器
        this.registerModule(simpleModule);
    }

4.定義消息轉(zhuǎn)換器

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.util.List;

/**
 * 配置類,注冊(cè)web層相關(guān)組件
 */
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
    /**
     * 擴(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);
    }
}

5.調(diào)用測(cè)試

import com.example.result.Result;
import org.springframework.web.bind.annotation.*;

import java.util.Date;

@RestController
public class UserWebTest {
    @GetMapping("/getUser")
    public Result<?> aa(){
        User user = new User();
        user.setId(1L);
        user.setName("jljlm");
        user.setCreateDate(new Date());
        user.setUpdateDate(new Date());
        return Result.success(user);
    }

}

結(jié)果如下:
java日期格式化,java,開(kāi)發(fā)語(yǔ)言

總結(jié)

@作者:加辣椒了嗎?
簡(jiǎn)介:憨批大學(xué)生一枚,喜歡在博客上記錄自己的學(xué)習(xí)心得,也希望能夠幫助到你們!
java日期格式化,java,開(kāi)發(fā)語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-729111.html

到了這里,關(guān)于日期格式化的最佳實(shí)踐:如何在Java中處理日期格式化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java8日期時(shí)間類LocalDateTime格式化

    Java8日期時(shí)間類LocalDateTime格式化

    LocalDateTime日期時(shí)間格式化 LocalDateTime localDateTime = LocalDateTime.now() System.out.println(now.format( DateTimeFormatter.ofPattern(\\\"yyyy-MM-dd HH:mm:ss\\\") )); 測(cè)試1 測(cè)試2 測(cè)試2的結(jié)果

    2024年02月08日
    瀏覽(20)
  • Java格式化日期,時(shí)間(三種方法,建議收藏)

    Java格式化日期,時(shí)間(三種方法,建議收藏)

    在java中String類格式化的方法,是靜態(tài)format()用于創(chuàng)建格式化的字符串。 format(String format, Object...?args) 新字符串使用本地語(yǔ)言環(huán)境,制定字符串格式和參數(shù)生成格式化的新字符串。 format(Locale locale, String format, Object... args) 使用指定的語(yǔ)言環(huán)境,制定字符串格式和參數(shù)生成格式化

    2024年02月15日
    瀏覽(20)
  • JAVA中,日期格式化YYYY 與yyyy區(qū)別

    JAVA中,日期格式化YYYY 與yyyy區(qū)別

    在java中我們時(shí)常會(huì)使用到日期格式化,例如“YYYY-MM-dd”、“yyyy-MM-dd” 今天我們來(lái)看一下大寫Y與小寫y有什么不同。 先總結(jié):盡量使用小寫y來(lái)表示年份。 我們直接來(lái)看代碼 1.將日期設(shè)置成2023年12月31日,并且分別使用大寫Y和小寫y進(jìn)行格式化打印; 2.結(jié)果 我們驚訝的發(fā)現(xiàn),

    2024年01月23日
    瀏覽(21)
  • Java程序設(shè)計(jì)入門教程--日期格式化類SimpleDateFormat

    Java程序設(shè)計(jì)入門教程--日期格式化類SimpleDateFormat

    ? ? ? ?在程序設(shè)計(jì)中,經(jīng)常用到特定的日期格式,此時(shí)就可以使用 java.text 包中的 SimpleDateFormat 類來(lái)對(duì)日期時(shí)間進(jìn)行格式化,如可以將日期轉(zhuǎn)換為指定格式的文本,也可將文本轉(zhuǎn)換為日期。 目標(biāo)格式 使用SimpleDateFormat類時(shí),首先要定義一個(gè)要轉(zhuǎn)換的日期時(shí)間目標(biāo)格式。目標(biāo)格

    2024年02月07日
    瀏覽(19)
  • 使用 uni-app 開(kāi)發(fā)項(xiàng)目,日期和時(shí)間如何格式化?

    功能需求描述 在開(kāi)發(fā)項(xiàng)目時(shí),往往需要對(duì)從后端查詢到的時(shí)間進(jìn)行格式化,查到的時(shí)間格式一般都是 時(shí)間戳 ,一堆數(shù)字,這時(shí)候怎么轉(zhuǎn)化成類似于? 2023年8月15日 08:12:10 ?這樣的格式? 在組件顯示格式化后的日期 其實(shí) uni-app 的官方拓展組件? uni-dateformat ?就能實(shí)現(xiàn)這個(gè)需求

    2024年02月05日
    瀏覽(12)
  • 【Java 基礎(chǔ)篇】Java日期和時(shí)間格式化與解析指南:SimpleDateFormat詳解

    【Java 基礎(chǔ)篇】Java日期和時(shí)間格式化與解析指南:SimpleDateFormat詳解

    日期和時(shí)間在軟件開(kāi)發(fā)中經(jīng)常被用到,無(wú)論是用于記錄事件、計(jì)算時(shí)間間隔還是格式化日期以供用戶友好的展示。Java 提供了強(qiáng)大的日期和時(shí)間處理工具,其中 SimpleDateFormat 類是一個(gè)重要的工具,用于格式化日期和時(shí)間,同時(shí)也支持解析日期和時(shí)間。本篇博客將深入探討 Sim

    2024年02月09日
    瀏覽(48)
  • Java中日期時(shí)間格式化方法SimpleDateFormat和DateTimeFormatter使用完整示例及區(qū)別說(shuō)明

    Java中日期時(shí)間格式化方法SimpleDateFormat和DateTimeFormatter使用完整示例及區(qū)別說(shuō)明

    示例代碼: 示例截圖: ?這里完整的用兩種方法分別實(shí)現(xiàn)了日期和String的來(lái)回轉(zhuǎn)換,鑒于SimpleDateFormat早已過(guò)時(shí),且非線程安全,所以推薦大家首選使用DateTimeFormatter,用法基本都是差不多的。變化不大。但是DateTimeFormatter需要Java Level 8(8 - Lambdas, type annotations etc.),需留意。

    2023年04月09日
    瀏覽(26)
  • Java工具類——json字符串格式化處理

    Java工具類——json字符串格式化處理

    在我們拿到一團(tuán)未經(jīng)格式化的json字符串時(shí),非常不方便查看,比如這樣 因此隨手寫了個(gè)工具類用來(lái)格式化json。注意,原json字符串必須語(yǔ)法無(wú)誤,并且不包含換行、空格、縮進(jìn)等,否則會(huì)保留下來(lái)。 ok廢話不多說(shuō)上代碼 運(yùn)行后效果

    2024年01月17日
    瀏覽(31)
  • C# 格式化日期

    除去string.Format()可以對(duì)日期進(jìn)行格式化之外,*.ToString()也可以實(shí)現(xiàn)相同的效果: 另一種寫法:

    2024年02月15日
    瀏覽(21)
  • Oracle格式化日期

    Oracle格式化日期

    將oralce中時(shí)間格式為XXX年XX月XX日,如下圖: 需要給年月日 添加引號(hào) ,如to_char(sysdate,\\\'yyyy \\\"年\\\" mm \\\"月\\\" dd \\\"日\(chéng)\\" \\\'?);

    2024年02月15日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包