如何在Node.js中通过Dayjs提取给定日期的UTC偏移量
Dayjs提取日期原始UTC偏移的解决办法
默认用dayjs(date)解析带时区偏移的日期时,会自动转成服务器本地时区,所以utcOffset()返回的是本地时区的偏移量,不是日期本身携带的原始偏移。要解决这个问题,用Dayjs的parseZone插件就能搞定——它会保留日期字符串里的原始时区信息,不会做时区转换。
代码示例
const dayjs = require('dayjs'); // 必须引入parseZone插件才能保留原始偏移 dayjs.extend(require('dayjs/plugin/parseZone')); const dateStr = "2023-07-21T12:00:00+05:00"; const parsedDate = dayjs.parseZone(dateStr); // 获取原始偏移的分钟数(+05:00对应300分钟) const offsetMinutes = parsedDate.utcOffset(); console.log(offsetMinutes); // 输出 300 // 获取格式化的偏移字符串(如+05:00) const offsetStr = parsedDate.format('Z'); console.log(offsetStr); // 输出 +05:00
补充说明
parseZone能适配各种标准ISO 8601日期格式,不用担忧日期格式变化的问题,比字符串分割的方法稳定得多。- 如果需要更复杂的时区操作,可以搭配
utc和timezone插件,但仅提取原始偏移的话,parseZone完全够用。
内容的提问来源于stack exchange,提问作者Farrukh Ahmad
相关产品推荐
相关产品推荐

