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

【java基础】时间

Java 中的所有时间类型

Java 提供了多种时间类型,主要用于处理日期、时间和时区相关的操作。自 Java 8 引入 java.time 包以来,推荐使用该包中的类来处理日期和时间,因为它们提供了更强大且易于使用的 API,并且解决了旧的 java.util.Datejava.util.Calendar 类中存在的许多问题。

类型描述适用场景
LocalDate表示没有时间部分的日期(年-月-日),例如 2024-12-25当你只需要处理日期而不关心具体的时间信息时。
LocalTime表示没有日期部分的时间(时-分-秒-纳秒),例如 13:45:30.123456789用于仅需要处理一天内的时间点而不需要知道具体的日期时。
LocalDateTime结合了 LocalDateLocalTime,表示一个完整的日期时间对象,但不包含时区信息。适用于大多数需要同时处理日期和时间的情况,尤其是在不需要考虑时区的情况下。
ZonedDateTime包含了时区信息的完整日期时间对象。当你的应用程序需要处理全球不同地区的日期时间,并且必须考虑到时区差异时。
OffsetDateTime类似于 ZonedDateTime,但它只包含 UTC 偏移量(如 +02:00),而不包含特定的时区规则。当你只需要记录相对于 UTC 的固定偏移量时,而不是具体的时区规则。
Instant表示时间线上的一个瞬时点,精确到纳秒,通常用于记录事件发生的确切时刻。它总是基于 UTC。适合用于记录系统内部的时间戳或进行跨时区的时间计算。
Duration表示两个时间点之间的时间间隔,以秒和纳秒为单位。用于计算两个 LocalTime, LocalDateTime, 或 Instant 对象之间的持续时间。
Period表示两个日期之间的间隔,以年、月、日为单位。用于计算两个 LocalDate 对象之间的差值,特别是当你需要按年、月、日来表达时间间隔时。
Year, Month, YearMonth, MonthDay分别表示年份、月份、年月组合、月日组合。这些类用于特定情况下只需表示年、月或两者组合的情况。
ZoneId, ZoneOffset分别表示一个时区标识符(如 Europe/Berlin)和相对于 UTC 的固定偏移量(如 +02:00)。用于创建带有时区或 UTC 偏移量的时间对象。

使用示例

创建和格式化 LocalDateTime
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        // 获取当前时间
        LocalDateTime now = LocalDateTime.now();
        System.out.println("当前时间:" + now);

        // 格式化输出
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formattedNow = now.format(formatter);
        System.out.println("格式化后的时间:" + formattedNow);
    }
}

http://www.kler.cn/a/457222.html

相关文章:

  • html 中前缀的 data-开头的元素属性是什么
  • 【深度学习】多目标融合算法—样本Loss提权
  • U盘格式化工具合集:6个免费的U盘格式化工具
  • Linux文件描述符
  • 使用Locust对MySQL进行负载测试
  • MongoDB深度解析与实践案例
  • WAV文件双轨PCM格式详细说明及C语言解析示例
  • 计算机图形学知识点汇总
  • 保险科技“数智化+”赋能险企高质量发展
  • 72.是否可以把所有Bean都通过Spring容器来管理?(Spring的applicationContext.xml中配置全局扫 描)
  • 基于Pycharm与数据库的新闻管理系统(2)Redis
  • 内网渗透思路amp;相关服务爆破以及提权
  • SpringBoot使用外置的Servlet容器(详细步骤)
  • CH340系列芯片驱动电路·CH340系列芯片驱动!!!
  • 鸿蒙next之如何实现防截屏功能
  • 在 CentOS 系统上安装 ClickHouse
  • Es搭建——单节点——Linux
  • 【FPGA】ISE13.4操作手册,新建工程示例
  • 嵌入式学习-硬件基础-Day02
  • 深入理解 Cookie 和 Session 在 Java Web 中的应用
  • Unity 实现Canvas显示3D物体
  • 18_HTML5 Web IndexedDB 数据库 --[HTML5 API 学习之旅]
  • 神经网络-Inception
  • vscode vue文件 点击ctrl没有跳转到有@路径的自定义组件
  • React Diffing 算法完整指南
  • 精读DeepSeek v3技术文档的心得感悟