java实现本地日期时间处理
投稿:zxhpj
这篇文章主要介绍了本地日期时间处理的程序,实现了下面的功能,大家参考使用吧
一、改进背景
Java 8针对时间处理进行了全面的改进,重新设计了所有日期时间、日历及时区相关的 API。并把它们都统一放置在 java.time 包和子包下。
Java5的不足之处:
- 非线程安全:java.util.Date 并不是线程安全的,在使用这个类时必须自己处理多线程并发问题。
- 设计不佳 :日期和日期格式化分布在多个包中,java.util.Date 的默认日期,年是从1900开始,月从 1 开始,日从 0 开始,没有统一性。而且 Date 类也缺少直接操作日期的相关方法。
- 时区处理困难:因为设计不佳,不得不编写大量代码来处理时区问题。
Java8的改进方案:
- 线程安全:新的日期时间API是线程安全的不仅没有setter方法,而且任何对实例的变更都会返回一个新的实例而保证原来的实例不变。
- 日期修改:新的日期时间API提供了大量的方法,用于修改日期时间的各个部分,并返回一个新的实例。
- 域: 在时区方面,新的日期时间API引入了域这个概念。
- 组合拆分:针对原来复杂的 API 进行重新组合和拆分,分成了好多个类。
二、本地日期时间
LocalDate: 用于表示不含时区的日期,例如:2024-07-06。
import java.time.LocalDate; import java.time.Month; public class LocalDateExample { public static void main(String[] args) { // 获取当前日期 LocalDate today = LocalDate.now(); System.out.println("当前日期: " + today); // 创建指定日期 LocalDate specificDate = LocalDate.of(2024, Month.JULY, 6); System.out.println("指定日期: " + specificDate); // 日期操作示例 LocalDate tomorrow = today.plusDays(1); System.out.println("明天的日期: " + tomorrow); } } // 输出 当前日期: 2024-07-06 指定日期: 2024-07-06 明天的日期: 2024-07-07
LocalTime: 用于表示不含时区的时间,例如:10:30:15.。