多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java `LocalTime`类 > 原文: [https://howtodoinjava.com/java/date-time/java-localtime/](https://howtodoinjava.com/java/date-time/java-localtime/) [Java 8 中引入](https://howtodoinjava.com/java8/date-and-time-api-changes-in-java-8-lambda/)的`java.time.LocalTime`类,将没有日期或时区信息的本地时间对象**表示为**“小时-分-秒”成分。 它表示达到纳秒精度的时间,例如 `09:25:59.123456789`。 我们可以使用`LocalTime`实例来表示时间,而无需使用如墙上时钟所示的日期或时区参考。 例如,我们可以使用`LocalTime`表示`LocalTime`类,以捕获员工何时进入办公大楼以及何时离开。 注意,`LocalTime`实例是[**不可变的**](https://howtodoinjava.com/java/basics/how-to-make-a-java-class-immutable/)和[**线程安全**](https://howtodoinjava.com/java/multi-threading/what-is-thread-safety/)。 ## 1\. `LocalTime`类声明 ```java public final class LocalTime extends Object implements Temporal, TemporalAdjuster, Comparable<LocalTime>, Serializable { //class body } ``` ## 2\. 如何在 Java 中创建`LocalTime` 通常,我们将在两种情况下创建本地时间实例,即获取当前时间或为指定时间戳创建本地时间。 #### 2.1 获取当前本地时间 使用以下方法获取当前本地时间。 ```java LocalTime now = LocalTime.now(); ``` #### 2.2 创建指定的本地时间 要创建具有特定小时,分钟和秒的本地时间,请使用以下方法。 ```java LocalTime ltObject1 = LocalTime.of(08, 20, 45); LocalTime ltObject2 = LocalTime.of(08, 20, 45, 123456789); LocalTime ltObject3 = LocalTime.parse("08:20"); LocalTime ltObject4 = LocalTime.parse("08:20:45.123456789"); ``` ## 3\. 如何将字符串解析为`LocalTime` `LocalTime`类具有两个重载的`parse()`方法,用于将字符串中的时间转换为本地时间实例。 ```java parse(CharSequence text) //1 parse(CharSequence text, DateTimeFormatter formatter) //2 ``` * 如果字符串包含[`ISO_LOCAL_TIME`](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ISO_LOCAL_TIME)模式中的时间,即`HH:mm:ss`,请使用第一种方法。 这是 Java 中本地时间的默认模式。 * 对于任何其他时间模式,我们都需要使用第二种方法,在该方法中,我们将时间作为字符串传递,并使用表示该时间字符串的模式的格式化器。 ```java //1 - default time pattern String time = "08:20:45.123456789"; LocalTime localTimeObj = LocalTime.parse(time); //2 - specific time pattern DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH.mm.ss.nnn"); String time = "08.20.45.123456789"; LocalTime localTimeObj = LocalTime.parse(time, formatter); ``` ## 4\. 如何将`LocalTime`格式化为字符串 使用`LocalTime.format(DateTimeFormatter)`方法将本地时间格式化为所需的字符串表示形式。 ```java DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH.mm"); LocalTime today = LocalTime.now(); String timeString = today.format(formatter); //12.38 ``` ## 5\. 如何修改本地时间 `LocalTime`提供以下方法,可用于相对于可用本地时间实例获取新的本地时间实例。 * `plusHours()` * `plusMinutes()` * `plusSeconds()` * `plusNanos()` * `minusHours()` * `minusMinutes()` * `minusSeconds()` * `minusNanos()` ```java LocalTime now = LocalTime.now(); //3 hours later LocalTime localTime1 = now.plusHours(3); //3 minutes earliar LocalTime localTime2 = now.minusMinutes(3); ``` ## 6\. 更多例子 [在`LocalTime`和`java.sql.Time`之间进行转换](https://howtodoinjava.com/java/date-time/localtime-to-sql-time/) 学习愉快! 参考: [`LocalTime` Java 文档](https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html)