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

如何根据国家代码获取对应UTC时区列表及当前本地时间

获取国家对应UTC时区列表及本地时间展示方法

一、获取时区列表的实现思路

通过语言内置的时区处理API,结合国家代码与时区标识符的映射关系实现:

  • 维护一份国家代码到对应时区标识符的映射表(比如bg对应Europe/Sofia,pl对应Europe/Warsaw)
  • 利用时区标识符获取该时区的UTC偏移量,转换为UTC ±X的格式

示例代码(JavaScript)

// 国家代码到时区的映射(可按需扩展)
const countryTimeZoneMap = {
  bg: ['Europe/Sofia'],
  pl: ['Europe/Warsaw'],
  it: ['Europe/Rome']
};

// 获取指定国家的UTC时区偏移列表
function getCountryUTCOffsets(countryCode) {
  const timeZones = countryTimeZoneMap[countryCode.toLowerCase()] || [];
  return timeZones.map(tz => {
    const date = new Date();
    // getTimezoneOffset返回UTC与本地时间的差值(分钟),符号需反转
    const utcOffset = -(date.getTimezoneOffset() / 60);
    return `UTC ${utcOffset >= 0 ? '+' : ''}${utcOffset}`;
  });
}

二、两种展示格式实现

1. 国家可用UTC时区列表格式

调用上述函数后按指定格式输出:

  • BG可用时区:UTC +2
  • PL可用时区:UTC +1、UTC +2(夏令时切换时偏移变化)
  • IT可用时区:UTC +1、UTC +2(夏令时切换时偏移变化)

2. 当前本地时间展示格式

通过时区标识符生成带UTC偏移的本地时间:

// 获取指定时区的本地时间及UTC偏移
function getLocalTimeWithUTC(tzName) {
  const now = new Date();
  // 生成中文格式的时间字符串
  const localTime = now.toLocaleTimeString('zh-CN', { 
    timeZone: tzName, 
    hour12: false,
    hour: '2-digit',
    minute: '2-digit'
  });
  const utcOffset = -(now.getTimezoneOffset() / 60);
  const utcStr = `UTC ${utcOffset >= 0 ? '+' : ''}${utcOffset}`;
  // 提取时区对应的城市/区域名称
  const regionName = tzName.split('/')[1].replace('_', ' ');
  return `${regionName}时间 ${localTime} ${utcStr}`;
}

// 示例:获取奥地利(维也纳时区)的当前本地时间
console.log(getLocalTimeWithUTC('Europe/Vienna'));
// 输出示例:维也纳时间 11:00 UTC +1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:10:20