Java LocalTime 基本使用

1. 创建LocalTime对象

可以使用LocalTime.now()获取当前时间,也可以使用LocalTime.of()方法指定小时、分钟、秒来创建:

LocalTime now = LocalTime.now();  
LocalTime time = LocalTime.of(12, 30, 50);

2. 获取时间信息

可以分别获取小时、分钟、秒:

int hour = time.getHour();   //12
int minute = time.getMinute();//30  
int second = time.getSecond();//50

也可以使用get()方法,传入ChronoField枚举:

int hour = time.get(ChronoField.CLOCK_HOUR_OF_DAY);
int minute = time.get(ChronoField.MINUTE_OF_HOUR);

3. 格式化输出

可以使用toString()直接输出,也可以使用DateTimeFormatter格式化:

String s = time.toString();  //12:30:50
DateTimeFormatter f = DateTimeFormatter.ofPattern(" HH:mm:ss");
String s2 = time.format(f); // 12:30:50 

4. 修改时间

使用withXxx()方法修改时间,返回新对象:

LocalTime newTime = time.withHour(15);     //15:30:50 
LocalTime newTime2 = time.withMinute(20);  //12:20:50

也可以使用plusXxx()/minusXxx()方法添加/减少时间:

LocalTime later = time.plusHours(3);   //15:30:50
LocalTime earlier = time.minusMinutes(40); //11:50:50

5. 时间比较

使用isBefore()isAfter()isEqual()方法比较两个时间大小:

LocalTime t2 = LocalTime.of(15, 20);
time.isBefore(t2);  //true 
time.isAfter(t2);   //false
time.isEqual(t2);   //false

6. 转换为其他单位

  • toSecondOfDay():转换为一天中的秒数
  • toNanoOfDay():转换为一天中的纳秒数
  • to(TemporalUnit):转换为指定时间单位,如MINUTESHOURS
time.toSecondOfDay(); //45450 
time.to(ChronoUnit.MINUTES); //12
time.to(ChronoUnit.HOURS);   //0  

7. 时间加减

可以对LocalTime对象进行加减操作,返回新对象:

LocalTime plus3 Hours = time.plus(3, ChronoUnit.HOURS);  //15:30:50
LocalTime minus20Mins = time.minus(20, ChronoUnit.MINUTES); //11:50:50

8. 时区转换

LocalTime是本地时间,不带时区信息。可以使用atZone()方法得到对应的ZonedDateTime对象,并进行时区转换:

ZonedDateTime zdt = time.atZone(ZoneId.of("America/New_York"));
ZonedDateTime zdt2 = time.atZone(ZoneId.of("Asia/Shanghai")); 

希望这篇文章对大家了解LocalTime有所帮助。欢迎在评论区提出任何疑问!