输入是一个字符串,如" 23:55"或" 09:20",即" HH:mm"格式。我希望字符串以UTC格式指定时间。我想使用java.time将字符串和输出解析为具有指定时间的Instant。如果需要,我可以在字符串中附加一个时区,即" 23:55 UTC"。
我想使用生成的瞬间来计算现在和上述瞬间之间的纳米数。即。
Duration.between(Instant.now(), resultingInstant).toNanos();
编辑:可能找到了解决方案:
resultingInstant = LocalTime.parse("23:55").atDate(LocalDate.now(ZoneOffset.UTC)).toInstant(ZoneOffset.UTC)
答案 0 :(得分:0)
另一种方法是使用ZonedDateTime:
import static java.time.ZoneOffset.UTC;
import static java.time.temporal.ChronoUnit.NANOS;
LocalDate today = LocalDate.now(UTC);
ZonedDateTime resultingDate = ZonedDateTime.of(today, LocalTime.parse("23:55"), UTC);
long nanos = NANOS.between(ZonedDateTime.now(), resultingDate);