当前位置: 首页 > news >正文

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:45

2. 使用 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:45Z

5. 线程安全的格式化(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

http://www.jsqmd.com/news/304803/

相关文章:

  • 看清不要什么:60天松绑第二步——用“反愿景”照见你的隐形牢笼与停滞沼泽
  • 如何甄别一家靠谱的背调公司?
  • SimpleDateFormat 为什么线程不安全
  • 【Rust开发】Rust基础语法详细解析,助力你快速通关Rust
  • 性能优化:类型系统的最佳实践
  • 设计模式在 TypeScript 中的实现
  • 2026年1月线切割机床厂家推荐排行榜,中走丝/快走丝/电火花线切割机床,穿孔机,精密高效加工设备源头厂商精选
  • C盘爆红怎么办!几招彻底清理电脑C盘空间
  • 研发需求排期实战指南:工具选型、流程搭建与效能提升
  • 聊聊AI智能客服
  • 破解协作低效难题:中小企业流程数字化工具及核心策略
  • 测试用例执行进度实时同步工具指南:从流程打通到效率提效的全链路落地
  • 【无人机追踪】基于资源福利任务分配算法的无人机集群任务分配算法,完成目标攻击任务的基础上,无人机的资源利用率最大化 + 资源损耗的公平性最优附Matlab代码2
  • 2026年铝板厂家推荐排行榜:幕墙铝板、氟碳铝板、木纹铝板、蜂窝铝板、异型铝板等全品类实力厂家深度解析与选购指南
  • RAG 不是万能解,这些场景你一开始就不该用
  • 零基础想转行网络安全?这3个方向门槛低、就业快
  • 运维人别内耗!转行网安,薪资翻倍+职业逆袭指南
  • 2026网络安全这趟车_你还敢上吗?
  • 2026年,还能继续入网络安全行业吗?那些行业不敢说的秘密
  • 普通本科转行网络安全5年,现在月薪2W+,劝你想清楚!
  • IP6163至为芯支持MPPT功能的太阳能电池板充电DC-DC芯片
  • 轨道小车无线控制系统设计与实现
  • 【图像加密】基于DCT变换的图像加密与解密附matlab代码
  • 2026年想给Facebook广告账户充值,到底该找谁?这里有一份详细的避坑指南
  • 144. 二叉树的前序遍历-day11
  • 2026年 电机厂家推荐排行榜:直驱电机/线性电机/无框电机/力矩电机/高频电机,核心技术与高效能解决方案深度解析
  • Comsol电弧冲击击穿模型:多相流模拟的奇妙之旅
  • 交流调压那些事儿:单相、三相及带中性线三相交流调压
  • 探索锂电池生产设备的自动化控制:从硬件到软件实现
  • 探索基于SPWM的异步电机无速度传感器矢量控制