从api中,我得到一个返回的时间戳,如:1643295022
如何使用Javascript将其转换为2020-08-26T08:46:01+02:00
?
export const generateDate = (time: number) => {
return new Date(time * 1000);
};
以上返回Fri Jan 28 2022 12:57:00 GMT+0100 (Central European Standard Time)
。如何将其转换为类似2022-01-27T14:50:22+02:00
的内容?
另外,对于另一个助手,我正在使用已经过时的fns。也许我可以在这种情况下使用它?
我想您要找的是一个ISO格式的日期,但带有时区偏移信息。
您可以使用getTimezoneOffset()
获得时区偏移量,然后在删除.
之后的秒字符串后,将其附加到从toISOString()
获得的日期格式的末尾。
因为getTimezoneOffset()
的结果是以分钟为单位的,所以您需要将其转换为具有必要的+
和-
符号的HH:MM
。
希望以下内容能有所帮助。
const isoWithTimeZone = d => {
let TZ=(d=new Date(d*1000)).getTimezoneOffset(), a=Math.abs(TZ);
return d.toISOString().split(".")[0]+(TZ<0?"+":"-")+("00"+~~(a/60)).slice(-2)+":"+("00"+a%60).slice(-2);
}
console.log(isoWithTimeZone(1643295022));