我正在使用一个 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分钟
你可以使用 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);