localtime 提供 gethour()、getminute()、getsecond() 和 getnano() 方法直接获取时分秒及纳秒(0–999999999),简洁安全,适用于格式化、校验与高精度场景。

Java 中 LocalTime 提供了多个直接方法来提取时间的各个分量,无需手动解析字符串或计算,简洁又安全。
获取小时、分钟、秒(整数)
getHour()、getMinute()、getSecond() 分别返回 0–23、0–59、0–59 范围内的 int 值,对应当前时刻的时、分、秒。
LocalTime now = LocalTime.now();int hour = now.getHour(); // 如 14int minute = now.getMinute(); // 如 35int second = now.getSecond(); // 如 22
获取纳秒(用于更高精度)
getNano() 返回当前秒内的纳秒部分(0–999,999,999),不是“总纳秒数”。它常用于需要微秒级精度的场景,比如日志打点或性能测量。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
int nano = now.getNano(); // 如 123456789- 注意:它不等于毫秒 × 1_000_000;例如
10:15:30.123的getNano()是123_000_000
组合使用示例(格式化或校验)
可直接用这些值做条件判断或拼接自定义格式:
if (time.getHour() >= 18 && time.getHour()String hhmm = String.format("%02d:%02d", time.getHour(), time.getMinute());- 避免用
toString()再分割字符串——既低效又易出错
注意事项
这些方法全部是只读操作,不会修改原 LocalTime 对象(它是不可变的)。所有返回值都是基础类型 int,无 null 风险,也不抛异常。
- 不存在“获取毫秒”方法——毫秒需自行计算:
time.getSecond() * 1000 + time.getNano() / 1_000_000 - 若需带时区的时间分量(如本地时区 vs UTC),应改用
ZonedDateTime或OffsetTime
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










