news 2026/10/21 9:23:19

java Date转换为string

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 3:03:34

MATLAB 探索声发射波形:参数计算与谱绘制

MATLAB计算给定声发射波形的基本参数和特征参数、绘制单边振幅谱 在材料科学和无损检测等领域,声发射技术作为一种重要的监测手段,能够捕捉到材料内部结构变化时产生的弹性波信号,也就是声发射波形。借助 MATLAB 强大的计算和绘图能力&#x…

作者头像 李华
网站建设 2026/10/19 12:14:04

大型流水线贴膜机项目程序:初学者的福音

大型流水线贴膜机完成项目程序,包含PLC程序和触摸屏程序,程序内 包含上下气缸控制,夹紧气缸控制,输送带电机控制,贴膜伺服控制,旋转电机控制等类容,非常适合学习简单控制工艺及运动控制初学者学…

作者头像 李华
网站建设 2026/10/19 12:13:54

电场流线生成技巧

comsol针尖刺穿表皮细胞数值模拟,可以得到组织细胞浓度分布及电磁场分布,最近在搞生物电穿孔的模拟,拿COMSOL折腾了个针尖刺穿表皮细胞的模型。这玩意儿能同时看到细胞被扎穿时的离子浓度变化和电场分布,特别适合研究微针给药时的…

作者头像 李华
网站建设 2026/10/21 4:34:36

产业链影响:上游受益,下游分化,本土配套加速

产业链影响:上游受益,下游分化,本土配套加速 上游(芯片配套 / 服务器 / 数据中心):英伟达在华研发、生产、供应链投入(如上海张江基地),将带动 PCB、散热、服务器制造、数…

作者头像 李华
网站建设 2026/10/21 4:54:36

吉时利2400 2410 2430精密数字源表

‌吉时利2400是Tektronix(原Keithley)推出的图形化系列源测量单元(SMU)‌,集精密电压/电流源与测量功能于一体,配备触摸屏界面,适用于半导体、医疗等领域的精密电子测试。‌‌ 1‌‌ 2 核心功能…

作者头像 李华
网站建设 2026/10/19 12:14:06

极简排班(安卓)手机端免费排班工具,轮班倒班轻松记录

多数排班工具都以电脑端为主,而这款极简排班专为安卓手机打造,用手机随时查看、设置排班更便捷,且目前完全免费,适配日常排班记录、轮班制办公需求 软件下载地址 软件操作极简,上手无门槛:先添加班次&…

作者头像 李华