java設(shè)置日期返回格式的4種方式小結(jié)
在Java中設(shè)置Date字段的格式,通常有兩種常見(jiàn)做法:
1. 在實(shí)體類中使用注解格式化(推薦)
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
public class YourEntity {
// 方案1: Jackson注解(適用于JSON序列化)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date entryDate;
// 方案2: Spring注解(適用于表單綁定)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date entryDate;
// 方案3: 使用LocalDateTime(Java 8+推薦)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime entryDateTime;
// getter和setter
public Date getEntryDate() {
return entryDate;
}
public void setEntryDate(Date entryDate) {
this.entryDate = entryDate;
}
}2. 在配置文件中全局設(shè)置
application.yml/application.properties:
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+83. 手動(dòng)格式化(靈活控制)
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
// 日期轉(zhuǎn)字符串
public static String formatDate(Date date, String pattern) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(date);
}
// 字符串轉(zhuǎn)日期
public static Date parseDate(String dateStr, String pattern) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.parse(dateStr);
} catch (Exception e) {
throw new RuntimeException("日期格式錯(cuò)誤");
}
}
}
// 使用示例
String formattedDate = DateUtil.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
Date date = DateUtil.parseDate("2024-01-15 14:30:00", "yyyy-MM-dd HH:mm:ss");4. 使用Java 8的日期時(shí)間API(強(qiáng)烈推薦)
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class YourEntity {
private LocalDateTime entryDate;
// 格式化顯示
public String getFormattedEntryDate() {
if (entryDate == null) return null;
return entryDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
// 字符串設(shè)置
public void setEntryDateFromString(String dateStr) {
this.entryDate = LocalDateTime.parse(dateStr,
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
}常用格式模式
| 格式 | 說(shuō)明 | 示例 |
|---|---|---|
| yyyy-MM-dd | 年-月-日 | 2024-01-15 |
| yyyy/MM/dd | 年/月/日 | 2024/01/15 |
| yyyy-MM-dd HH:mm:ss | 完整日期時(shí)間 | 2024-01-15 14:30:00 |
| yyyy年MM月dd日 | 中文日期 | 2024年01月15日 |
| HH:mm:ss | 時(shí)間 | 14:30:00 |
| yyyy-MM-dd'T'HH:mm:ss | ISO格式 | 2024-01-15T14:30:00 |
最佳實(shí)踐建議
- 后端到前端傳輸:使用
@JsonFormat注解 - 前端到后端接收:使用
@DateTimeFormat注解 - 數(shù)據(jù)庫(kù)存儲(chǔ):使用
LocalDateTime(Java 8+) - 時(shí)區(qū)處理:明確指定時(shí)區(qū),如
timezone = "GMT+8"
選擇哪種方式取決于你的具體需求:
- 如果主要在JSON接口中使用,選方案1
- 如果需要靈活控制,選方案3
- 如果是新項(xiàng)目,強(qiáng)烈推薦使用Java 8的日期時(shí)間API(方案4)
到此這篇關(guān)于java設(shè)置日期返回格式的4種方式小結(jié)的文章就介紹到這了,更多相關(guān)java設(shè)置日期返回格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java解除文件占用即Dom4j操作后實(shí)現(xiàn)xml關(guān)流
這篇文章主要介紹了Java解除文件占用即Dom4j操作后實(shí)現(xiàn)xml關(guān)流,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
SpringBoot使用Apache?POI實(shí)現(xiàn)導(dǎo)入導(dǎo)出Excel文件
Apache?POI?是一個(gè)強(qiáng)大的?Java?庫(kù),用于處理?Microsoft?Office?文檔,下面我們來(lái)看看SpringBoot如何使用Apache?POI導(dǎo)入導(dǎo)出Excel文件功能吧2025-01-01
SpringBoot基于SpringSecurity表單登錄和權(quán)限驗(yàn)證的示例
這篇文章主要介紹了SpringBoot基于SpringSecurity表單登錄和權(quán)限驗(yàn)證的示例。文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
idea配置maven環(huán)境時(shí)maven下載速度慢的解決方法
我們?cè)趇dea配置maven環(huán)境的時(shí)候會(huì)發(fā)現(xiàn)maven更新慢的現(xiàn)象,解決辦法就是下載國(guó)內(nèi)的鏡像包,完美解決下載速度慢的問(wèn)題,文中有詳細(xì)的具體操作方法,并通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
SpringMVC結(jié)合Jcrop實(shí)現(xiàn)圖片裁剪
這篇文章主要介紹了SpringMVC結(jié)合Jcrop實(shí)現(xiàn)圖片裁剪的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
SpringBoot中@Data注解的深度解析與實(shí)戰(zhàn)應(yīng)用
@Data是Lombok庫(kù)提供的一個(gè)核心注解,它通過(guò)簡(jiǎn)化Java開發(fā)中常見(jiàn)的樣板代碼來(lái)顯著提高開發(fā)效率,下面小編就為大家詳細(xì)介紹一下@Data注解的詳細(xì)使用吧2025-10-10

