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):转换为指定时间单位,如
MINUTES
、HOURS
等
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
有所帮助。欢迎在评论区提出任何疑问!