我从开放天气API获取数据
dt:1679888142
timezone:7200
我试图通过在JavaScript中应用Date
对象,然后应用toUTCString()
来获取本地时间,从而将UNIX时间更改为本地时间。
目标是将获得的本地时间'Mon, 27 Mar 2023 05:35:42 GMT'
更改为长格式的时间,例如'Monday, March 27 at 4:35 AM'
。当我应用以下代码时,它没有格式化,还添加了我的时区差异。
这是下面的代码
let epochtime = weatherData.dt;
let timezone = weatherData.timezone;
const rfc2822Date = new Date((epochtime + timezone) * 1000).toUTCString();
const options = {
weekday: "long",
month: "long",
day: "numeric",
hour: "numeric",
minute: "numeric",
hour12: true
};
const longFormatDateTime = rfc2822Date.toLocaleString("en-us",options);
我试图再次将日期传递到日期对象,这将导致GMT+时区和格式。格式似乎工作,但本地时间是错误的
2条答案
按热度按时间kmpatx3s1#
因为我们在这里处理的是一个固定的偏移量,所以在创建Date对象时,我们可以简单地将UTC偏移量(以秒为单位)添加到epoch时间。但是,我们需要在格式化时指定'UTC'时区,以避免在客户端的时区中进行格式化。
zbq4xfa02#
您需要直接在日期对象上调用
toLocaleString
,而不是rfc2822字符串。希望这个有用。