加载DarkSky数据后,如何用JavaScript格式化日期、时间与温度?
解决DarkSky天气数据的时间戳格式化与字段困惑
嘿,刚好我之前也对接过DarkSky的API,来帮你理清这两个核心问题:
先搞懂那些带Time的字段含义
你提到的temperatureHighTime、temperatureLowTime这类字段,其实是对应气温极值出现的精确时间点:
temperatureHighTime/apparentTemperatureHighTime:当天的最高气温(或体感最高温)会在这个时间点出现,值是秒级Unix时间戳temperatureLowTime/apparentTemperatureLowTime:当天的最低气温(或体感最低温)出现的时间戳- 另外
temperatureMaxTime/temperatureMinTime是整个预报周期内的极端温时间,和单日的High/Low要区分开哦
把Unix时间戳转成可读时间
DarkSky返回的时间戳都是秒级的(不是常见的毫秒级),所以转换的时候要注意单位,下面给你两种常用开发语言的实现:
JavaScript 实现
// 拿temperatureHighTime的示例值1527627600来演示 const highTempTimestamp = 1527627600; // 把秒级转成毫秒级,传给Date对象 const highTempDate = new Date(highTempTimestamp * 1000); // 快速转成本地可读时间,比如 "5/29/2018, 2:00:00 PM" const readableLocalTime = highTempDate.toLocaleString(); // 自定义格式(更美观) const formattedTime = new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', timeZone: 'America/New_York' // 可以指定时区,避免本地时区偏差 }).format(highTempDate); console.log(formattedTime); // 输出 "May 29, 2018, 02:00 PM"
Python 实现
import datetime import pytz # 需要安装的话用 pip install pytz high_temp_timestamp = 1527627600 # 转成本地时间 local_time = datetime.datetime.fromtimestamp(high_temp_timestamp).strftime('%Y-%m-%d %H:%M:%S') print(local_time) # 输出 "2018-05-29 14:00:00" # 指定时区(比如UTC转纽约时间) ny_tz = pytz.timezone('America/New_York') ny_time = datetime.datetime.fromtimestamp(high_temp_timestamp, ny_tz).strftime('%b %d, %Y %I:%M %p') print(ny_time) # 输出 "May 29, 2018 02:00 PM"
温度值的格式化处理
DarkSky默认返回的是华氏度(°F),如果需要转成摄氏度(°C),用这个公式就好:°C = (°F - 32) * 5/9,同时可以保留1-2位小数让显示更清爽:
JavaScript 示例
const tempHighF = 84.29; // 转成摄氏度并保留1位小数 const tempHighC = ((tempHighF - 32) * 5/9).toFixed(1); console.log(`${tempHighC}°C`); // 输出 "29.0°C"
Python 示例
temp_high_f = 84.29 temp_high_c = round((temp_high_f - 32) * 5/9, 1) print(f"{temp_high_c}°C") # 输出 "29.0°C"
小提示
- 时区问题一定要注意:DarkSky的时间戳是UTC时间,转换时如果要显示用户本地时间,记得做好时区映射,不然会出现时间偏差
- 那个
icon字段(比如示例里的"fog"),DarkSky有一套标准的图标名称,你可以提前准备好对应图标,直接关联显示,用户体验会更好
内容的提问来源于stack exchange,提问作者Benjamin So
相关产品推荐
相关产品推荐

