Java日期和时间API:处理日期、时间和持续时间
作者:API传播员 · 2025-12-14 · 阅读时间:4分钟
在本教程中,我们将深入探讨 Java 日期和时间 API,它为处理日期、时间以及持续时间提供了一套强大的类和方法。这一 API 于 Java 8 中引入,与旧的 java.util.Date 和 java.util.Calendar 类相比,它提供了一种更健壮、更直观的方式来操作日期和时间。Java 日期和时间 API 是围绕 java.time 包构建的,该包包含用于表示日期、时间、持续时间和周期的多种类。
Java Time API 概述
Java 时间 API 可以分为以下三大类:
- 即时和持续时间:这些类用于表示一个时间点(
Instant)以及两个时间点之间的持续时间(Duration)。 - 本地日期和时间:这些类表示不包含时区信息的日期(
LocalDate)、时间(LocalTime)以及日期时间组合(LocalDateTime)。 - 分区日期和时间:这些类表示包含时区信息的日期、时间以及日期时间组合(如
ZonedDateTime、OffsetDateTime和OffsetTime)。
使用即时和持续时间
即时(Instant)
Instant 类表示一个时间点,通常以 UTC 时间为基准。您可以使用 now() 方法获取当前时刻:
import java.time.Instant;
public class InstantExample {
public static void main(String[] args) {
Instant now = Instant.now();
System.out.println("当前即时:" + now);
}
}
持续时间(Duration)
Duration 类表示两个时间点之间的时间量。可以通过 between() 方法来创建一个持续时间实例:
import java.time.Duration;
import java.time.Instant;
public class DurationExample {
public static void main(String[] args) {
Instant start = Instant.now();
// 执行一些操作
Instant end = Instant.now();
Duration duration = Duration.between(start, end);
System.out.println("操作持续时间:" + duration.toMillis() + " 毫秒");
}
}
使用本地日期和时间
本地日期(LocalDate)
LocalDate 类表示不包含时间或时区信息的日期。可以通过 of() 或 now() 方法创建一个 LocalDate 实例:
import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
LocalDate specificDate = LocalDate.of(2021, 12, 31);
System.out.println("今天的日期:" + today);
System.out.println("指定日期:" + specificDate);
}
}
本地时间(LocalTime)
LocalTime 类表示不包含日期或时区信息的时间。与 LocalDate 类似,可以通过 of() 或 now() 方法创建一个 LocalTime 实例:
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
LocalTime now = LocalTime.now();
LocalTime specificTime = LocalTime.of(23, 59, 59);
System.out.println("当前时间:" + now);
System.out.println("指定时间:" + specificTime);
}
}
本地日期时间(LocalDateTime)
LocalDateTime 类将日期和时间组合到一个对象中。以下是一个示例:
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
LocalDateTime specificDateTime = LocalDateTime.of(2021, 12, 31, 23, 59, 59);
System.out.println("当前日期和时间:" + now);
System.out.println("指定日期和时间:" + specificDateTime);
}
}
使用分区日期和时间
ZonedDateTime、OffsetDateTime 和 OffsetTime 类用于表示包含时区信息的日期和时间。以下是 ZonedDateTime 的示例:
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class ZonedDateTimeExample {
public static void main(String[] args) {
ZonedDateTime now = ZonedDateTime.now();
ZonedDateTime specificZonedDateTime = ZonedDateTime.of(
2021, 12, 31, 23, 59, 59, 0, ZoneId.of("America/New_York")
);
System.out.println("当前分区日期和时间:" + now);
System.out.println("指定分区日期和时间:" + specificZonedDateTime);
}
}
结论
Java 日期和时间 API 提供了一套全面的类和方法,用于处理日期、时间以及持续时间。通过掌握这些工具,开发人员可以更高效地处理与时间相关的任务。无论是构建复杂的时间逻辑还是处理跨时区的应用程序,这些类都能提供极大的帮助。对于任何 Java 开发者来说,深入了解这一 API 都是必不可少的技能。
原文链接: https://reintech.io/blog/java-date-and-time-api
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
最新文章
- API 安全策略和基础指南
- 2025 ComfyUI 稳定扩散流水线|拖拽式节点化+API 集成教程
- Flask-Limiter:为 API 添加访问速率限制的 Python 扩展!
- 小红书AI文章风格转换:违禁词替换与内容优化技巧指南
- REST API 设计:过滤、排序和分页
- 认证与授权API对比:OAuth vs JWT
- 如何获取 Coze开放平台 API 密钥(分步指南)
- 首次构建 API 时的 10 个错误状态代码以及如何修复它们
- 当中医遇上AI:贝业斯如何革新中医诊断
- 如何使用OAuth作用域为您的API添加细粒度权限
- LLM API:2025年的应用场景、工具与最佳实践 – Orq.ai
- API密钥——什么是API Key 密钥?