Amadeus「On-Demand Flight Status」API负时区使用问题咨询
问题分析与解决方案
这不是Amadeus API的缺陷,而是API对scheduledDepartureDate参数的定义规则导致的——该参数要求传入UTC(格林尼治标准时间)对应的日期,而非航班起飞地的当地日期。
问题原因
以你提到的OS7910航班为例:
- 纽瓦克(EWR)当地时间2024-08-28 23:00(EDT,UTC-4)起飞时,UTC时间已经是2024-08-29 03:00。
- 当你传入
scheduledDepartureDate=2024-08-28时,API会基于UTC时间判断该日期已过去,因此返回4926错误。
规避方案
将航班起飞的当地时间转换为UTC时间,取UTC对应的日期作为scheduledDepartureDate的参数值:
- 计算UTC日期:对于EDT时区(UTC-4)的23:00起飞时间,UTC时间为次日03:00,所以UTC日期是
2024-08-29。 - 调整请求参数:修改后的请求示例为:
https://api.amadeus.com/v2/schedule/flights?carrierCode=OS&flightNumber=7910&scheduledDepartureDate=2024-08-29 - 通用规则:对于所有负时区的航班,若当地起飞时间接近午夜(导致UTC日期跳转至次日),都需要使用UTC对应的日期作为参数值,而非当地日期。
内容的提问来源于stack exchange,提问作者Murlakatam
相关产品推荐
相关产品推荐

