java实现Date转换为string的五种常见实现方法
在Java中将Date转换为String有多种方法,以下是常用的几种方式:
1. 使用 SimpleDateFormat(传统方式,Java 8之前)
import java.text.SimpleDateFormat;
import java.util.Date;
// 创建Date对象
Date date = new Date();
// 创建SimpleDateFormat对象,指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 转换为字符串
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. 预定义格式示例
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
到此这篇关于java实现Date转换为string的五种常见实现方法的文章就介绍到这了,更多相关java Date转string内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解java.lang.NumberFormatException错误及解决办法
这篇文章主要介绍了详解java.lang.NumberFormatException错误及解决办法,本文详解的介绍了错误的解决方法,感兴趣的可以一起来了解一下2020-05-05
使用Spring Initializr方式如何快速构建Spring Boot项目
Spring lnitializr是一个Web应用,它提供了一个基本的项目结构,能够帮助我们快速构建一个基础的Spring Boot项目,本文分步骤讲解如何使用Spring Initializr方式构建Spring Boot项目,感兴趣的朋友跟随小编一起看看吧2023-08-08
java中排序报:Comparison method violates its general contract异常的解
这篇文章主要给大家介绍了关于java中排序报:Comparison method violates its general contract异常的解决方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-06-06
SpringSecurity自定义注解放行以及在微服务架构中使用详解
文章介绍了SpringSecurity的认证流程,包括过滤器链的使用、AuthenticationFilter的作用、认证管理器的认证过程,以及如何通过自定义注解实现接口匿名访问2026-03-03
idea新建Springboot项目,设置默认maven和jdk版本方式
这篇文章主要介绍了idea新建Springboot项目,设置默认maven和jdk版本方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12


最新评论