从 LocalTime Java 获取所有毫秒数
Get all milliseconds from LocalTime Java
我需要知道如何将 LocalTime 精确到毫秒
LocalTime lunchTime = LocalTime.parse("01:00:00",
DateTimeFormatter.ISO_TIME);
如果我要执行 lunchTime.getMinute()
我只会得到 0 而 lunchTime.getHour()
我只会得到 1 小时。如何获取毫秒级的值?
尝试获取纳秒或秒并转换为毫秒(取决于您处理的精度)。
lunchTime.toNanoOfDay() / 1e+6
lunchTime.toSecondOfDay() * 1e+3
可以使用System.currentTimeMillis()
,参考https://currentmillis.com/
此外,请参考 后续 解析日期 的格式选择。
此外,如果您尝试从不同时区的应用程序 运行 获取您所在时区的当地时间,请关注评论
如果你想要一天中的毫秒数(换句话说,自 00:00 以来的毫秒数),有一个 ChronoField
枚举常量恰好用于此:
LocalTime lunchTime = LocalTime.parse("01:00:00");
int millisecondOfDay = lunchTime.get(ChronoField.MILLI_OF_DAY);
System.out.println("Lunch is at " + millisecondOfDay + " milliseconds of the day");
输出:
Lunch is at 3600000 milliseconds of the day
(对于某些人来说,凌晨 1 点可能是一个有趣的午餐时间,但为了演示和使用您自己的示例。)
java.time 的日期和时间 类 通常有一个 get
方法接受 TemporalField
参数。 LocalTime
也不例外。调用 get()
时最常见的事情是传递一个 ChronoField
常量。该方法非常通用,可用于从未提供 getXxx
方法的日期时间对象中获取值。
文档 link: ChronoField.MILLI_OF_DAY
我需要知道如何将 LocalTime 精确到毫秒
LocalTime lunchTime = LocalTime.parse("01:00:00",
DateTimeFormatter.ISO_TIME);
如果我要执行 lunchTime.getMinute()
我只会得到 0 而 lunchTime.getHour()
我只会得到 1 小时。如何获取毫秒级的值?
尝试获取纳秒或秒并转换为毫秒(取决于您处理的精度)。
lunchTime.toNanoOfDay() / 1e+6
lunchTime.toSecondOfDay() * 1e+3
可以使用System.currentTimeMillis()
,参考https://currentmillis.com/
此外,请参考 后续 解析日期 的格式选择。
此外,如果您尝试从不同时区的应用程序 运行 获取您所在时区的当地时间,请关注评论
如果你想要一天中的毫秒数(换句话说,自 00:00 以来的毫秒数),有一个 ChronoField
枚举常量恰好用于此:
LocalTime lunchTime = LocalTime.parse("01:00:00");
int millisecondOfDay = lunchTime.get(ChronoField.MILLI_OF_DAY);
System.out.println("Lunch is at " + millisecondOfDay + " milliseconds of the day");
输出:
Lunch is at 3600000 milliseconds of the day
(对于某些人来说,凌晨 1 点可能是一个有趣的午餐时间,但为了演示和使用您自己的示例。)
java.time 的日期和时间 类 通常有一个 get
方法接受 TemporalField
参数。 LocalTime
也不例外。调用 get()
时最常见的事情是传递一个 ChronoField
常量。该方法非常通用,可用于从未提供 getXxx
方法的日期时间对象中获取值。
文档 link: ChronoField.MILLI_OF_DAY