原文: https://howtodoinjava.com/java/date-time/java-localtime/

Java 8 中引入java.time.LocalTime类,将没有日期或时区信息的本地时间对象表示为“小时-分-秒”成分。 它表示达到纳秒精度的时间,例如 09:25:59.123456789

我们可以使用LocalTime实例来表示时间,而无需使用如墙上时钟所示的日期或时区参考。 例如,我们可以使用LocalTime表示LocalTime类,以捕获员工何时进入办公大楼以及何时离开。

注意,LocalTime实例是不可变的线程安全

1. LocalTime类声明

  1. public final class LocalTime
  2. extends Object
  3. implements Temporal, TemporalAdjuster, Comparable<LocalTime>, Serializable
  4. {
  5. //class body
  6. }

2. 如何在 Java 中创建LocalTime

通常,我们将在两种情况下创建本地时间实例,即获取当前时间或为指定时间戳创建本地时间。

2.1 获取当前本地时间

使用以下方法获取当前本地时间。

  1. LocalTime now = LocalTime.now();

2.2 创建指定的本地时间

要创建具有特定小时,分钟和秒的本地时间,请使用以下方法。

  1. LocalTime ltObject1 = LocalTime.of(08, 20, 45);
  2. LocalTime ltObject2 = LocalTime.of(08, 20, 45, 123456789);
  3. LocalTime ltObject3 = LocalTime.parse("08:20");
  4. LocalTime ltObject4 = LocalTime.parse("08:20:45.123456789");

3. 如何将字符串解析为LocalTime

LocalTime类具有两个重载的parse()方法,用于将字符串中的时间转换为本地时间实例。

parse(CharSequence text)    //1

parse(CharSequence text, DateTimeFormatter formatter)    //2
  • 如果字符串包含ISO_LOCAL_TIME模式中的时间,即HH:mm:ss,请使用第一种方法。 这是 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)方法将本地时间格式化为所需的字符串表示形式。

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()
LocalTime now = LocalTime.now();

//3 hours later
LocalTime localTime1 = now.plusHours(3);    

//3 minutes earliar
LocalTime localTime2 = now.minusMinutes(3);

6. 更多例子

LocalTimejava.sql.Time之间进行转换

学习愉快!

参考: LocalTime Java 文档