【发布时间】:2018-12-27 13:48:20
【问题描述】:
我有一个设置未来/过去日期 Java 8 的解决方案,但我想知道是否有更简洁的方法。
我有一个方法,其中一个参数的类型是ZonedDateTime。
我正在提取时间,转换为毫秒并从现在减去它。
void setFuturePastDate(ZonedDateTime dateTime) {
long diffInSeconds = ZonedDateTime.now().toEpochSecond()
- dateTime.toEpochSecond();
Duration durationInSeconds = Duration.ofSeconds(diffInSeconds);
Instant instantInSeconds = now.minusSeconds(durationInSeconds);
Clock clock = Clock.fixed(instantInSeconds, ZoneId.systemDefault());
System.out.println(ZonedDateTime.now(clock)); // - I have a past date
在 Joda 中很简单:
setCurrentMillisSystem(long)
无论我们在哪里访问new DateTime(),它都会给出日期设置。
Java 8 中有更简洁的方法吗?
【问题讨论】:
-
很抱歉,会记住的。接受了 Ole 的回答
标签: java java-8 zoneddatetime