Con*_*sea 14 java datetime java-8
即使在阅读了大量教程之后,我也不是真正了解Temporal Adjusters或Java的新时间库.
如何将Instant对象转换为LocalTime对象.我正在思考以下几点:
LocalTime time = LocalTime.of(
instantStart.get(ChronoField.HOUR_OF_DAY),
instantStart.get(ChronoField.MINUTE_OF_HOUR)
);
Run Code Online (Sandbox Code Playgroud)
但它没有用.我该怎么做?
Ada*_*dam 19
我理解它的方式......即时是一种UTC风格的时间,不知道区域总是UTC.LocaleTime是给定区域的时间.因此,如果Instant实现TemporalAccessor,您会期望以下内容可行,
Instant instant = Instant.now();
LocalTime local = LocalTime.from(instant);
Run Code Online (Sandbox Code Playgroud)
但是你得到"无法从TemporalAccessor获取LocalTime"错误.相反,你需要说明"本地"的位置.没有默认 - 可能是一件好事.
Instant instant = Instant.now();
LocalTime local = LocalTime.from(instant.atZone(ZoneId.of("GMT+3")));
System.out.println(String.format("%s => %s", instant, local));
Run Code Online (Sandbox Code Playgroud)
产量
2014-12-07T07:52:43.900Z => 10:52:43.900
Run Code Online (Sandbox Code Playgroud)
instantStart.get(ChronoField.HOUR_OF_DAY)抛出一个错误,因为它在概念上不支持它,你只能通过LocalTime实例访问HOUR_OF_DAY等.
| 归档时间: |
|
| 查看次数: |
9954 次 |
| 最近记录: |