1.LocalTime

该类LocalTime是为需要处理时间但没有日期的情况创建的。例如,假设您正在编写一个闹钟应用程序。您关心的是时间,而不是日期。

该类LocalTimeLocalDate类非常相似——它的对象在创建后同样不能更改。

获取当前时间

要创建一个新LocalTime对象,您需要使用静态now()方法。例子:

LocalTime time = LocalTime.now();

其中time是一个LocalTime变量,是对类的静态方法的调用。LocalTime.now()now()LocalTime

例子:

代码 控制台输出
LocalTime time = LocalTime.now();
System.out.println("Now = " + time);

Now = 09:13:13.642881600

点后跟当前的纳秒数。

2.获取特定时间

要获取特定时间,您需要使用静态of()方法。例子:

LocalTime time = LocalTime.of(hours, minutes, seconds, nanoseconds);

您传入小时、分钟、秒和纳秒。

例子:

代码 控制台输出
LocalTime time = LocalTime.of(12, 15, 0, 100);
System.out.println("Now = " + time);
Now = 12:15:00.000000100

顺便说一下,这种方法还有两种变体:

LocalTime time = LocalTime.of(hours, minutes, seconds);

LocalTime time = LocalTime.of(hours, minutes);

所以你可以使用对你来说更方便的那个。

根据秒的索引获取时间

您还可以通过一天中秒的索引来获取时间。为此,我们有静态ofSecondOfDay()方法:

LocalTime time = LocalTime.ofSecondOfDay(seconds);

其中seconds是自一天开始以来的秒数。

例子:

代码 控制台输出
LocalTime time = LocalTime.ofSecondOfDay(10000);
System.out.println(time);

02:46:40

是的,10,000 秒不到三个小时。都是正确的。

3.获取时间要素

要从对象中获取特定时间元素的值LocalTime,我们有以下方法:

方法 描述
int getHour()
返回小时数
int getMinute()
返回分钟
int getSecond()
返回秒数
int getNano()
返回纳秒

例子:

代码 控制台输出
LocalTime now = LocalTime.now();
System.out.println(now.getHour());
System.out.println(now.getMinute());
System.out.println(now.getSecond());
System.out.println(now.getNano());

2
46
40
0

LocalTime4.改变对象中的时间

该类LocalTime还有一些方法可以让您处理时间。这些方法的实现类似于类的方法LocalDate:它们不更改现有LocalTime对象,而是返回一个包含所需数据的新对象。

以下是该类的方法LocalTime

方法 描述
plusHours(int hours)
增加小时数
plusMinutes(int minutes)
增加分钟数
plusSeconds(int seconds)
加秒
plusNanos(int nanos)
添加纳秒
minusHours(int hours)
减去小时数
minusMinutes(int minutes)
减去分钟
minusSeconds(int seconds)
减秒
minusNanos(int nanos)
减去纳秒

例子:

代码 控制台输出
LocalTime time = LocalTime.now();
LocalTime time2 = time.plusHours(2);
LocalTime time3 = time.minusMinutes(40);
LocalTime time4 = time.plusSeconds(3600);

System.out.println(time);
System.out.println(time2);
System.out.println(time3);
System.out.println(time4);





10:33:55.978012200
12:33:55.978012200
09:53:55.978012200
11:33:55.978012200

请注意,在每种情况下,我们都会得到一个相对于原始time对象的新时间。如果你添加3600 seconds到一个时间,那么你添加 exactly 1hour