无法从TemporalAccessor获取OffsetDateTime:2016-12-15T15:58:03Z类型为java.time.Instant

时间:2016-12-15 16:03:14

标签: java-8

我有以下方法,我试图将新创建的OffsetDateTime与下面的类进行比较:

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: Unable to obtain OffsetDateTime from TemporalAccessor: 2016-12-15T15:58:03Z of type java.time.Instant

---------------更新一个----------------

我尝试了以下操作,但收到了以下错误:

ava.time.DateTimeException: Unable to obtain OffsetDateTime from TemporalAccessor: 2016-12-15T19:51:57Z of type java.time.Instant

@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;

    }

1 个答案:

答案 0 :(得分:2)

你也可以尝试这样的东西从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 
}