未找到类型的即时转换器:java.time.ZonedDateTime

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未找到类型的即时转换器:java.time.ZonedDateTime相关的知识,希望对你有一定的参考价值。

我正在尝试从范围中获取较低/较高的端点,并且当要获取这些较低/较高的端点时,它会抛出异常,如下所示:

java.lang.IllegalArgumentException: No instant converter found for type: java.time.ZonedDateTime

    at org.joda.time.convert.ConverterManager.getInstantConverter(ConverterManager.java:166)
    at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:171)
    at org.joda.time.DateTime.<init>(DateTime.java:257)
    at pl.azimuthit.flightmap.airportstatus.AirportStatusProviderImpl.getForecastForFlightOverall(AirportStatusProviderImpl.java:81)

代码:

@Override
    public WeatherStatus getForecastForFlightOverall(String icao, ... flight) {

       ...

        if ( flightmapIntegration.isMetIntegrationEnabled() ) {
            List<ViewFlightAirportDTO> airports = getFlightRouteAirports(icao, flight);
            Range<ZonedDateTime> range = getRange(airports);

            DateTime from = range.lowerEndpoint() == null ? null : new DateTime(range.lowerEndpoint());
            DateTime to = range.upperEndpoint() == null ? null : new DateTime(range.upperEndpoint());

            try {
               ....
            }
        }

        return status != null ? status : WeatherStatus.UNKNOWN;
    }

getRange方法:

 private Range<ZonedDateTime> getRange(List<...> ...) {

        if ( ....isEmpty() ) {
            return Range.singleton(ZonedDateTime.now());
        }

        Range<ZonedDateTime> result = validityRangeOf(....get(0));

        for (int i = 1; i < flightAirports.size(); i++) {
            result = result.span(validityRangeOf(....get(i)));
        }

        return result;
    }

validtyRangeOf方法:

private Range<ZonedDateTime> validityRangeOf(ViewFlightAirportDTO firstAirport) {
        return Range.closed(firstAirport.getValidFrom(), firstAirport.getValidTill());
    }

编辑我可以这样,但不知道如何完成。我的意思是从/到也可以是ZonedDateTime的类型,但我不知道如何使用较低/较高的端点创建它的对象

   ZonedDateTime from = range.lowerEndpoint() == null ? null : new ZonedDateTime(range.lowerEndpoint());
            ZonedDateTime to = range.upperEndpoint() == null ? null : new ZonedDateTime(range.upperEndpoint());
答案
ZonedDateTime zonedDateTime = ZonedDateTime.now(); DateTime dateTime = new DateTime(zonedDateTime); // will cause IllegalArgumentException

以上是关于未找到类型的即时转换器:java.time.ZonedDateTime的主要内容,如果未能解决你的问题,请参考以下文章

(类型=内部服务器错误,状态=500)。未找到类型返回值的转换器:com.test.SearchVO 类

如何使用 ResponseEntity 返回 JSONObject 而不是 HashMap? (未找到类型返回值的转换器:类 org.json.JSONObject)

MatchData 中捕获的组的即时或隐式类型转换

重新加载模块后Python中的对象类型转换? [用于即时代码更改]

错误 C2679:二进制“<<”:未找到采用“std::string”类型右侧操作数的运算符(或没有可接受的转换)

即时应用在奥利奥设备上未激活