Java 1.8 LocalTime 时间

更新时间 2023-07-26 08:23:59

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 50w+ 字,讲解图 2200+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 1800+ 小伙伴加入学习 ,欢迎点击围观

1. 什么是 LocalTime?

LocalTime 是 Java 8 中用于处理时间的不可变类,它只包含时、分、秒和纳秒,而没有日期部分。注意,它没有时区信息,所以它代表的是一天中的某个时间。

2. 创建 LocalTime

创建 LocalTime 实例的最直接方式是使用它的静态工厂方法,比如 LocalTime.now():

import java.time.LocalTime;

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

我们还可以使用 of() 方法来创建一个具体时间:

LocalTime specificTime = LocalTime.of(12, 20, 45, 20);
System.out.println(specificTime);

上面的代码创建了一个表示 12 点 20 分 45 秒 20 纳秒的 LocalTime。

3. 获取时间信息

LocalTime 提供了一些方法来获取时间的信息,例如获取小时、分钟、秒和纳秒:

LocalTime now = LocalTime.now();

int hour = now.getHour();
int minute = now.getMinute();
int second = now.getSecond();
int nano = now.getNano();

System.out.println(hour);
System.out.println(minute);
System.out.println(second);
System.out.println(nano);

4. 修改时间

LocalTime 是不可变的,这意味着所有的修改操作都会返回一个新的 LocalTime 实例。例如,我们可以使用 plusHours()plusMinutes()plusSeconds()plusNanos() 方法来增加时间:

LocalTime now = LocalTime.now();

LocalTime later = now.plusHours(3).plusMinutes(2).plusSeconds(1).plusNanos(10);

System.out.println(later);

我们也可以使用 minusHours()minusMinutes()minusSeconds()minusNanos()方法来减少时间。

5. 比较时间

我们可以使用 isBefore()isAfter() 方法来比较两个 LocalTime:

LocalTime time1 = LocalTime.of(12, 30);
LocalTime time2 = LocalTime.of(13, 30);

System.out.println(time1.isBefore(time2));  // true
System.out.println(time1.isAfter(time2));   // false

6. 总结

Java 8 的 LocalTime 类为我们提供了一个简洁、强大的工具来处理时间。通过使用 LocalTime,我们可以更轻松地创建、修改和比较时间。希望这个教程可以帮助你理解 LocalTime,并在你的代码中找到它的应用场景。