You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定格式日期字符串提取UTC偏移量且不使用moment.js

原生JavaScript提取ISO日期字符串UTC偏移分钟数方案

实现思路

  • 用正则匹配日期字符串末尾的±HH:MM格式偏移字段
  • 拆分匹配结果获取符号、小时数值、分钟数值
  • 按规则换算为总分钟数:符号 * (小时数 * 60 + 分钟数)

完整实现代码

function getUtcOffsetMinutes(dateStr) {
  // 匹配末尾的±HH:MM格式偏移,兼容Z后缀的UTC0场景
  const offsetMatch = dateStr.match(/([+-])(\d{2}):(\d{2})$|Z$/);
  if (!offsetMatch) {
    // 无匹配偏移时可按需调整返回逻辑,此处默认返回0
    return 0;
  }
  // 匹配到Z后缀直接返回0(UTC+0)
  if (offsetMatch[0] === 'Z') return 0;
  const sign = offsetMatch[1] === '+' ? 1 : -1;
  const hours = parseInt(offsetMatch[2], 10);
  const minutes = parseInt(offsetMatch[3], 10);
  return sign * (hours * 60 + minutes);
}

// 测试用例
console.log(getUtcOffsetMinutes('2021-05-01T23:59:59.999-05:00')); // 输出:-300
console.log(getUtcOffsetMinutes('2023-10-01T12:00:00+05:30')); // 输出:330
console.log(getUtcOffsetMinutes('2024-01-01T00:00:00Z')); // 输出:0

注意事项

  • 该实现仅依赖原生JS API,无任何第三方依赖,可在所有支持ES5及以上的环境运行
  • 正则仅匹配字符串末尾的偏移字段,不会误匹配字符串中间的时间数字
  • 支持兼容带毫秒、不带毫秒、UTC后缀Z的各类标准ISO 8601带偏移日期格式

内容的提问来源于stack exchange,提问作者Gautham Shetty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:24:03