java實現(xiàn)Date轉(zhuǎn)換為string的五種常見實現(xiàn)方法
在Java中將Date轉(zhuǎn)換為String有多種方法,以下是常用的幾種方式:
1. 使用 SimpleDateFormat(傳統(tǒng)方式,Java 8之前)
import java.text.SimpleDateFormat;
import java.util.Date;
// 創(chuàng)建Date對象
Date date = new Date();
// 創(chuàng)建SimpleDateFormat對象,指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 轉(zhuǎn)換為字符串
String dateString = sdf.format(date);
System.out.println(dateString); // 輸出:2026-01-26 10:30:452. 使用 DateTimeFormatter(Java 8+ 推薦)
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
// 方法1:Date -> Instant -> LocalDateTime
Date date = new Date();
Instant instant = date.toInstant();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
// 定義格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateString = localDateTime.format(formatter);
System.out.println(dateString);
// 方法2:更簡潔的方式
String formatted = date.toInstant()
.atZone(ZoneId.systemDefault())
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));3. 使用 FastDateFormat(Apache Commons Lang)
import org.apache.commons.lang3.time.FastDateFormat;
import java.util.Date;
FastDateFormat fastDateFormat = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss");
String dateString = fastDateFormat.format(new Date());4. 預(yù)定義格式示例
import java.text.SimpleDateFormat;
import java.util.Date;
Date date = new Date();
// 只顯示日期
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(dateFormat.format(date)); // 2026-01-26
// 只顯示時間
SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
System.out.println(timeFormat.format(date)); // 10:30:45
// 中文格式
SimpleDateFormat chineseFormat = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
System.out.println(chineseFormat.format(date)); // 2026年01月26日 10時30分45秒
// ISO 8601格式
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
System.out.println(isoFormat.format(date)); // 2026-01-26T10:30:45Z5. 線程安全的格式化(Java 8+)
import java.time.format.DateTimeFormatter;
import java.util.Date;
// 線程安全的formatter
private static final DateTimeFormatter FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public String formatDate(Date date) {
return date.toInstant()
.atZone(ZoneId.systemDefault())
.format(FORMATTER);
}6. 常用格式模式
| 符號 | 含義 | 示例 |
|---|---|---|
| yyyy | 年份 | 2026 |
| MM | 月份(兩位) | 01 |
| M | 月份(一位或兩位) | 1 |
| dd | 日期(兩位) | 26 |
| d | 日期(一位或兩位) | 26 |
| HH | 24小時制小時 | 14 |
| hh | 12小時制小時 | 02 |
| mm | 分鐘 | 30 |
| ss | 秒 | 45 |
| SSS | 毫秒 | 123 |
| E | 星期幾 | Mon |
| a | 上午/下午 | PM |
推薦方案
Java 8及以上:推薦使用 DateTimeFormatter,線程安全且功能更強大
Java 8以下:使用 SimpleDateFormat,但要注意它不是線程安全的
如果需要頻繁格式化,考慮使用線程局部變量(ThreadLocal)包裝 SimpleDateFormat,或使用 Apache Commons Lang 的 FastDateFormat
到此這篇關(guān)于java實現(xiàn)Date轉(zhuǎn)換為string的五種常見實現(xiàn)方法的文章就介紹到這了,更多相關(guān)java Date轉(zhuǎn)string內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解java.lang.NumberFormatException錯誤及解決辦法
這篇文章主要介紹了詳解java.lang.NumberFormatException錯誤及解決辦法,本文詳解的介紹了錯誤的解決方法,感興趣的可以一起來了解一下2020-05-05
使用Spring Initializr方式如何快速構(gòu)建Spring Boot項目
Spring lnitializr是一個Web應(yīng)用,它提供了一個基本的項目結(jié)構(gòu),能夠幫助我們快速構(gòu)建一個基礎(chǔ)的Spring Boot項目,本文分步驟講解如何使用Spring Initializr方式構(gòu)建Spring Boot項目,感興趣的朋友跟隨小編一起看看吧2023-08-08
java中排序報:Comparison method violates its general contract異常的解
這篇文章主要給大家介紹了關(guān)于java中排序報:Comparison method violates its general contract異常的解決方法,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06
SpringSecurity自定義注解放行以及在微服務(wù)架構(gòu)中使用詳解
文章介紹了SpringSecurity的認證流程,包括過濾器鏈的使用、AuthenticationFilter的作用、認證管理器的認證過程,以及如何通過自定義注解實現(xiàn)接口匿名訪問2026-03-03
idea新建Springboot項目,設(shè)置默認maven和jdk版本方式
這篇文章主要介紹了idea新建Springboot項目,設(shè)置默認maven和jdk版本方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

