Java时间工具类LocalTime
- 嘚吧嘚
- LocalTime - API
-
- 获取时间
- 获取时分秒
- 增减时分秒
- 替换时间
- 比较时间
嘚吧嘚
本篇文章整理一下有关LocalTime工具类的用法。个人感觉单独使用LocalTime类的几率不大,使用频率最高的应该是LocalDateTime,但是既然都学习了,自然要全面一点。
LocalTime - API
获取时间
函数声明 |
描述 |
static LocalTime now() |
获取默认时区的当前时间 |
static LocalTime now(ZoneId zone) |
获取指定时区的当前时间 |
static LocalTime now(Clock clock) |
从指定时钟获取当前时间 |
static LocalTime of(int hour, int minute, int second) |
根据指定的时(0-23)、分(0-59)、秒(0-59)获取LocalTime实例 |
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime now = LocalTime.now();
LocalTime time1 = LocalTime.now(ZoneId.of("America/New_York"));
LocalTime time2 = LocalTime.now(Clock.systemDefaultZone());
LocalTime time3 = LocalTime.of(19, 12, 5);
System.out.println("now : " + now.format(formatter) + " " + ZoneId.systemDefault());
System.out.println("time1 : " + time1.format(formatter) + " America/New_York");
System.out.println("time2 : " + time2.format(formatter));
System.out.println("time3 : " + time3.format(formatter));
获取时分秒
函数声明 |
描述 |
int getHour() |
获取小时 |
int getMinute() |
获取分钟 |
int getSecond() |
获取秒钟 |
int getNano() |
获取纳秒 |
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time = LocalTime.of(19, 12, 5);
System.out.println("time : " + time.format(formatter));
System.out.println("getHour : " + time.getHour());
System.out.println("getMinute : " + time.getMinute());
System.out.println("getSecond : " + time.getSecond());
System.out.println("getNano : " + time.getNano());
增减时分秒
函数声明 |
描述 |
LocalTime plusHours(long hoursToAdd) |
增加小时 |
LocalTime plusMinutes(long minutesToAdd) |
增加分钟 |
LocalTime plusSeconds(long secondstoAdd) |
增加秒 |
LocalTime plusNanos(long nanosToAdd) |
增加纳秒 |
LocalTime minusHours(long hoursToSubtract) |
减少小时 |
LocalTime minusMinutes(long minutesToSubtract) |
减少分钟 |
LocalTime minusSeconds(long secondsToSubtract) |
减少秒 |
LocalTime minusNanos(long nanosToSubtract) |
减少纳秒 |
plusXxx是增加时间,minusXxx是减少时间,但查看源码可以发现minusXxx还是用的plusXxx,所以这两类方法传参可为正数,也可为负数。正负号相同、数字相同时效果相反。
以小时和分钟为例
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time = LocalTime.of(19, 12, 5);
System.out.println("time : " + time.format(formatter));
System.out.println("plusHours : " + time.plusHours(10));
System.out.println("minusHours : " + time.minusHours(-10));
System.out.println("plusMinutes : " + time.plusMinutes(15));
System.out.println("minusMinutes : " + time.minusMinutes(-15));
替换时间
函数声明 |
描述 |
LocalTime withHour(int hour) |
替换小时(0-23) |
LocalTime withMinute(int minute) |
替换分钟(0-59) |
LocalTime withSecond(int second) |
替换秒(0-59) |
LocalTime withNano(int nanoOfSecond) |
替换纳秒(0-999999999) |
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time = LocalTime.of(19, 12, 5);
System.out.println("time : " + time.format(formatter));
System.out.println("withHour : " + time.withHour(10));
System.out.println("withMinute : " + time.withMinute(15));
System.out.println("withSecond : " + time.withSecond(26));
System.out.println("withNano : " + time.withNano(36));
比较时间
函数声明 |
描述 |
int compareTo(LocalTime other) |
时间与另一个时间比较,x = y:0,x < y:-1,x > y::1 |
boolean isAfter(LocalTime other) |
检查时间是否在指定时间之后 |
boolean isBefore(LocalTime other) |
检查时间是否在指定时间之前 |
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time1 = LocalTime.of(19, 12, 5);
LocalTime time2 = LocalTime.of(18, 12, 5);
LocalTime time3 = LocalTime.of(20, 12, 5);
LocalTime time4 = LocalTime.of(19, 12, 5);
String timeStr1 = time1.format(formatter);
String timeStr2 = time2.format(formatter);
String timeStr3 = time3.format(formatter);
String timeStr4 = time4.format(formatter);
System.out.println("time1 : " + timeStr1);
System.out.println("time2 : " + timeStr2);
System.out.println("time3 : " + timeStr3);
System.out.println("time4 : " + timeStr4);
System.out.println(timeStr1 + " = " + timeStr2 + " : " + time1.compareTo(time2));
System.out.println(timeStr1 + " = " + timeStr4 + " : " + time1.compareTo(time4));
System.out.println(timeStr1 + " = " + timeStr3 + " : " + time1.compareTo(time3));
System.out.println(timeStr1 + " > " + timeStr2 + " : " + time1.isAfter(time2));
System.out.println(timeStr1 + " < " + timeStr2 + " : " + time1.isBefore(time2));
欢迎补充。