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

如何使用JavaScript将UTC时间转换为IST时间?

将UTC时间转换为IST时间的JavaScript实现

针对你给出的UTC时间13:18:30,以下是两种可靠的转换方法:

方法一:手动计算时区偏移

印度标准时间(IST)比UTC快5小时30分钟(总计330分钟),可以通过拆分时间、计算总时长后叠加偏移量来转换:

function convertUtcToIst(timeStr) {
  // 拆分UTC时间为时、分、秒
  const [utcHours, utcMinutes, utcSeconds] = timeStr.split(':').map(Number);
  
  // 计算UTC时间的总分钟数
  const totalUtcMinutes = utcHours * 60 + utcMinutes;
  // 加上IST偏移量(5小时30分=330分钟)
  const totalIstMinutes = totalUtcMinutes + 330;
  
  // 计算IST的时、分,处理跨天情况
  const istHours = totalIstMinutes >= 1440 ? totalIstMinutes / 60 - 24 : Math.floor(totalIstMinutes / 60);
  const istMinutes = totalIstMinutes % 60;
  
  // 格式化输出为两位数字的时分秒(秒数直接沿用,因为偏移不影响秒)
  return `${String(istHours).padStart(2, '0')}:${String(istMinutes).padStart(2, '0')}:${String(utcSeconds).padStart(2, '0')}`;
}

// 调用示例
console.log(convertUtcToIst('13:18:30')); // 输出 18:48:30

方法二:使用Intl.DateTimeFormat API(推荐)

利用JavaScript内置的国际化时间格式化API,直接指定IST对应的时区Asia/Kolkata,无需手动计算偏移:

function convertUtcToIst(timeStr) {
  // 构造一个UTC日期对象(这里用任意固定日期,仅时间部分有效)
  const utcDate = new Date(`2020-01-01T${timeStr}Z`);
  
  // 配置格式化选项:仅显示时分秒,时区设为印度标准时间
  const options = {
    timeZone: 'Asia/Kolkata',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: false
  };
  
  // 格式化并返回IST时间
  return new Intl.DateTimeFormat('en-US', options).format(utcDate);
}

// 调用示例
console.log(convertUtcToIst('13:18:30')); // 输出 18:48:30

两种方法都能得到正确的IST时间18:48:30,方法二更简洁且不易出错,推荐使用。

内容的提问来源于stack exchange,提问作者Bennison J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:48:23