Java 8 无法从类型为java.time.Instant的临时Accessor:2016-12-15T15:58:03Z获取OffsetDateTime
我有以下方法,我正在尝试将新创建的OffsetDateTime与以下类进行比较:Java 8 无法从类型为java.time.Instant的临时Accessor:2016-12-15T15:58:03Z获取OffsetDateTime,java-8,Java 8,我有以下方法,我正在尝试将新创建的OffsetDateTime与以下类进行比较: public OffsetDateTime getCreatedDateFromToken(String token) { logger.debug("Entered getCreatedDateFromToken "+token); OffsetDateTime o = (OffsetDateTime.from(getClaimsFromToken(token).getIssue
public OffsetDateTime getCreatedDateFromToken(String token) {
logger.debug("Entered getCreatedDateFromToken "+token);
OffsetDateTime o = (OffsetDateTime.from(getClaimsFromToken(token).getIssuedAt().toInstant()));
logger.debug("OffSetTimeDate is "+o);
return OffsetDateTime.from(getClaimsFromToken(token).getIssuedAt().toInstant());
}
但是,我得到以下错误:
java.time.DateTimeException:无法从临时Accessor:2016-12-15T15:58:03Z获取类型为java.time.Instant的OffsetDateTime
@Override
public OffsetDateTime getCreatedDateFromToken(String token) {
logger.debug("Entered getCreatedDateFromToken "+token);
//OffsetDateTime o = (OffsetDateTime.from(getClaimsFromToken(token).getIssuedAt().toInstant()));
OffsetDateTime oo = OffsetDateTime.ofInstant(Instant.from(OffsetDateTime.from(getClaimsFromToken(token).getIssuedAt().toInstant())), ZoneOffset.UTC);
//logger.debug("OffSetTimeDate is "+o);
return oo;
}
---------------更新一----------------
我尝试了以下操作,但出现以下错误:
ava.time.DateTimeException:无法从类型为java.time.Instant的临时Accessor:2016-12-15T19:51:57Z获取OffsetDateTime
@Override
public OffsetDateTime getCreatedDateFromToken(String token) {
logger.debug("Entered getCreatedDateFromToken "+token);
//OffsetDateTime o = (OffsetDateTime.from(getClaimsFromToken(token).getIssuedAt().toInstant()));
OffsetDateTime oo = OffsetDateTime.ofInstant(Instant.from(OffsetDateTime.from(getClaimsFromToken(token).getIssuedAt().toInstant())), ZoneOffset.UTC);
//logger.debug("OffSetTimeDate is "+o);
return oo;
}
您也可以尝试这样的方法从Instant获取OffsetDateTime
public OffsetDateTime getCreatedDateFromToken(String token) {
logger.debug("Entered getCreatedDateFromToken "+token);
OffsetDateTime offsetDateTime = getClaimsFromToken(token).getIssuedAt().toInstant().atOffset(ZoneOffset.UTC);
logger.debug("OffSetTimeDate is "+o);
return offsetDateTime
}
非常感谢,但我还有一个问题:您的解决方案输出
2016-12-15T20:22:44Z
但是OffsetDateTime newlyGeneratedDate=OffsetDateTime.now()代码>生成2016-12-15T15:22:44.780-05:00
,因此我的测试将失败。如何让.now
使用您的解决方案。您可以尝试OffsetDateTime.now(ZoneOffset.UTC)就是这样。非常感谢。