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

如何将UTC(HH:MM)格式时间转换为本地时间 JavaScript实现方法

UTC时间转本地时间解决方案

核心逻辑是先拆分UTC时间的时分字段,结合时区偏移量计算小时数值,同时处理跨天边界即可,完整实现如下:

// 入参1:UTC时间字符串,格式为HH:MM;入参2:getTimezoneOffset换算后的小时差
function convertUtcToLocal(utcTimeStr, timeDifference) {
  // 拆分UTC的小时、分钟
  const [utcHour, utcMinute] = utcTimeStr.split(':').map(Number)
  // 计算本地小时
  let localHour = utcHour - timeDifference
  // 处理跨天的边界场景
  if (localHour < 0) {
    localHour += 24
    // 如需同步处理日期偏移,可在此处添加日期减1的逻辑
  }
  if (localHour >= 24) {
    localHour -= 24
    // 如需同步处理日期偏移,可在此处添加日期加1的逻辑
  }
  // 补零格式化输出
  const fillZero = num => num.toString().padStart(2, '0')
  return `${fillZero(localHour)}:${fillZero(utcMinute)}`
}

// 你的原有获取时差代码
const date = new Date();
let timeDifference = date.getTimezoneOffset() / 60;

// 测试示例:API返回的UTC时间为13:29,山地夏令时场景下timeDifference为6
const result = convertUtcToLocal('13:29', timeDifference)
console.log(result) // 输出 07:29

注意事项

  • getTimezoneOffset的符号逻辑不要搞反:该API返回的是UTC时间比本地时间快的分钟数,比如UTC-6的山地夏令时场景,返回值为360,除以60得到的timeDifference为6,直接代入上面的函数计算即可,不需要额外修改符号。
  • 如果需要同时转换日期,可以在处理小时跨天的时候同步修改日期数值即可。

内容的提问来源于stack exchange,提问作者Tony Ingle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:45:08