java - 找不到类型的即时转换器: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)
编码:
@Override
public WeatherStatus getForecastForFlightOverall(String icao, ... flight) {
...
if ( flightmapIntegration.isMetIntegrationEnabled() ) {
List<ViewFlightAirportDTO> airports = getRoutes(icao, flight);
Range<ZonedDateTime> range = getRange(airports);
DateTime from = range.lowerEndpoint() == null ? null : new DateTime(range.lowerEndpoint());
...
try {
....
}
}
return status != null ? status : WeatherStatus.UNKNOWN;
}
获取范围方法:
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 = ...
}
return result;
}
有效范围方法:
private Range<ZonedDateTime> validityRangeOf(ViewFlightAirportDTO firstAirport) {
return Range.closed(firstAirport.getValidFrom(), firstAirport.getValidTill());
}
编辑我可以这样做,但不知道如何完成它。我的意思是 from/to 也可以是 ZonedDateTime 的类型,但我不知道如何使用下/上端点创建它的对象
ZonedDateTime from = range.lowerEndpoint() == null ? null : new ZonedDateTime(...);
ZonedDateTime to = ...
解决方案
您当前正尝试通过直接调用构造函数来转换ZonedDateTime
from DateTime
。
ZonedDateTime zonedDateTime = ZonedDateTime.now();
DateTime dateTime = new DateTime(zonedDateTime); // will cause IllegalArgumentException
您需要调用不同的构造函数来进行此转换:
DateTimeZone dateTimeZone = DateTimeZone.forID(zonedDateTime.getZone().getId()); // extract DateTimeZone separately
new DateTime(zonedDateTime.toInstant().toEpochMilli(), dateTimeZone); // convert using epoch milliseconds
这将允许您进行此转换。
推荐阅读
- javascript - 使用 mongo 中的 $inc 字段进行更新会出错
- node.js - NodeJS:如何将 CircleCI 中的环境变量包含到应用程序中
- python - 如何使用 SMOP(Matlab 到 Python 转换器)/
- javascript - 使用 Apple JS 登录返回“invalid_request: Invalid redirect_uri”。
- c# - 如何在 .netcore 运行时获取项目 GUID?
- r - 需要帮助从网站 API 中使用 RSocrata 提取 JSON 数据
- java - 在 Vim 中编码 java 时,如何在编辑时直接在 vim 中显示代码输出
- oracle-sqldeveloper - 在 SQL Developer 中根据数字字符串长度限制数据
- reactjs - reactRedux 全局状态变化
- snowflake-cloud-data-platform - 有没有办法找出雪花中数据类型错误的详细信息?