当前位置:首页 > Java

java日期如何转换

2026-03-24 01:29:54Java

日期转换方法

在Java中,日期转换通常涉及java.util.Datejava.util.Calendarjava.time包(Java 8及以上版本)以及字符串之间的相互转换。以下是常见的转换场景和实现方式:

字符串转Date(旧API)

使用SimpleDateFormat类将字符串解析为Date对象:

String dateString = "2023-10-25";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(dateString);

Date转字符串(旧API)

使用SimpleDateFormat格式化Date对象:

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(date);

新旧API转换(Date与LocalDateTime)

通过Instant实现java.util.Datejava.time.LocalDateTime的互转:

// Date转LocalDateTime
Date oldDate = new Date();
LocalDateTime ldt = oldDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();

// LocalDateTime转Date
LocalDateTime now = LocalDateTime.now();
Date newDate = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());

字符串转LocalDate(新API)

使用DateTimeFormatter解析字符串为LocalDate

String dateStr = "2023-10-25";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(dateStr, formatter);

LocalDate转字符串(新API)

格式化LocalDate为指定格式字符串:

LocalDate date = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
String result = date.format(formatter);

时间戳与日期转换

将时间戳(毫秒)转换为LocalDateTime

java日期如何转换

long timestamp = System.currentTimeMillis();
LocalDateTime dateTime = Instant.ofEpochMilli(timestamp)
        .atZone(ZoneId.systemDefault())
        .toLocalDateTime();

注意事项

  1. 时区处理:明确指定时区(如ZoneId.of("Asia/Shanghai"))避免时区问题。
  2. 线程安全SimpleDateFormat非线程安全,建议每个线程单独创建实例或使用ThreadLocal
  3. 新API优先:Java 8及以上版本推荐使用java.time包(如LocalDateZonedDateTime),API设计更清晰且不可变。

标签: 日期java
分享给朋友:

相关文章

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…

java如何输入数据

java如何输入数据

输入数据的方法 在Java中,输入数据可以通过多种方式实现,具体取决于输入来源(如控制台、文件、网络等)。以下是几种常见的方法: 使用Scanner类从控制台输入 Scanner类是Java中最常用…

java如何处理高并发

java如何处理高并发

Java处理高并发的方法 使用多线程和线程池 Java的java.util.concurrent包提供了线程池(如ThreadPoolExecutor)和并发工具类(如CountDownLatch、C…

如何学习java语言

如何学习java语言

学习Java语言的系统方法 理解基础概念 Java是一种面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制流语句(if-else、循环)是第一步。熟悉类和对象的概念,理解封装、继承和多态三…

教你如何完全卸载java

教你如何完全卸载java

卸载 Java 的步骤 Windows 系统 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到 Java 相关的条目,通常显示为“Java”或“Java(TM)”。右键点击选择卸载,按照…

vue 实现日期多选

vue 实现日期多选

实现日期多选的方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选。日期选择器组件(如 el-date-picker)需设置 type="dates"…