解析时间字符串

时间:2015-04-09 13:08:50

标签: java java-8 java-time

输入是一个字符串,如" 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)

1 个答案:

答案 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);