【问题标题】:understanding openweather api response了解 openweather api 响应
【发布时间】:2018-10-30 14:31:37
【问题描述】:

我无法解释来自 openweather api 的响应。我对下面调用中返回的值没有清楚的了解。

*appid 是 openweather 的示例,不是我自己的

http://samples.openweathermap.org/data/2.5/forecast/daily?zip=91001&appid=b6907d289e10d714a6e88b30761fae22

尤其是 dt,还有日期和分钟。

{
  dt: 1519070400,
  temp: {
   day: 283.99,
   min: 271.86,
   etc...
}

这些是 API 中这些值的定义

dt - 数据预测时间 temp.day - 日间温度。单位默认值:开尔文,公制:摄氏度,英制:华氏度。

我的问题是……

1) 我认为 dt 单位是某种 UTC 数字,但是当我尝试使用 UTC 转换器对其进行转换时,它返回无效。除了定义之外,我在文档中找不到更多信息。这个单位是什么,你有如何转换它的提示吗?

2) temp.day - 阅读定义我假设它是今天返回的开尔文温度,但是当我将它转换为华氏温度时,温度下降了很多。对于此示例,邮政编码为加利福尼亚州帕萨迪纳市,当前温度为华氏 70 度,但当我将返回的 283.99 开尔文结果转换为华氏度时,结果为 51 度。你知道这可能是什么吗?

感谢任何帮助,因为我试图更好地理解这些类型的 api 响应

【问题讨论】:

    标签: api utc weather


    【解决方案1】:
    1. 要将 UNIX Timestamp 转换为 JavaScript Date 对象,请在构造函数中将其乘以 1000。

      var date = new Date(unix_timestamp * 1000);

    2. 不知道您使用了哪种转换,很难调试。如果您想将响应保留为 Kelvin。请务必使用以下转换。

      var fahrenheitTemp = (kelvinTemp − 273.15) × 9/5 + 32;

      否则,您可以像这样传递单位查询。

      http://api.openweathermap.org/data/2.5/forecast/daily?zip=91001&appid=xxxxxx&units=imperal

    【讨论】:

      【解决方案2】:

      我为延迟道歉。无论如何,我希望这会有所帮助!

      1) 请使用此转换器:https://chrome.google.com/webstore/detail/utime/kpcibgnngaaabebmcabmkocdokepdaki 在它的设置中选择 GMT(西欧时间,伦敦.....)所以转换将根据 UTC 0000 时区进行。 将 UNIX 时间戳转换为人类可读的日期,反之亦然。 这只是一个时间戳。

      2)您使用的是示例文件,所以它没有连接到真正的API服务! API的真实url如下:

      http://api.openweathermap.org/data/2.5/forecast/daily?zip=91001&appid=xxxxxx

      此网址为 16 每日 API,不适用于免费帐户,因此如果您仍然使用免费计划,您可能无法访问数据。 温度以开尔文为单位提供。可以更改单位(units=metrics - 用于 C / units=imperal - 用于 F)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-16
        • 2021-11-28
        • 1970-01-01
        • 2019-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多