DayJS:格式化 ISO 日期/时间字符串并将其转换为本地时区的日期/时间

问题描述 投票:0回答:1

我正在使用一个 API,它以这种格式返回时间戳 2023-02-18T14:54:28.555Z 这是一个 ISO 字符串。我需要将此值格式化为用户的时区。

我试过这个: dayjs("2023-02-18T14:54:28.555Z").format('YYYY-MM-DD HH:MM:ss A') // => "2023-02-18 20:02:28 PM"

以上输出不正确,+0530 IST 时区晚了 30 分钟。

但是当我向 JavaScript 日期构造函数输入相同的字符串“2023-02-18T14:54:28.555Z”时,我可以看到正确的值。 new Date("2023-02-18T14:54:28.555Z").toString() // => 'Sat Feb 18 2023 20:24:28 GMT+0530 (India Standard Time)'

如何使用 DayJS 为我的时区获取正确的格式化值?

尝试将 ISO 字符串提供给 DayJS 构造函数,并期望它会将其解析为当前时区。但是输出值落后了30分钟

javascript date dayjs isodate
1个回答
1
投票

你可以使用 toLocaleString() 方法:

const timestamp = "2023-02-18T14:54:28.555Z";
const date = new Date(timestamp);


const options = { timeZone: 'Asia/Kolkata' };
const formattedDate = date.toLocaleString('en-US', options);

console.log(formattedDate); 

© www.soinside.com 2019 - 2024. All rights reserved.