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

C#应用如何基于TimeZoneId获取对应CultureInfo及2位ISO名称

实现方案

前置说明

  • 时区与国家/地区不是严格一一对应关系,单个时区可能覆盖多个国家,需要结合业务场景确认对应规则,以下示例默认取时区最常用的关联国家
  • CultureInfo.TwoLetterISOLanguageName返回的是语言代码(如en代表英语),你需要的国家2位ISO代码需要从RegionInfo类中获取
  • Windows系统默认使用Windows时区ID格式,Linux/macOS使用IANA时区ID格式,如果你需要跨平台运行,可以通过TimeZoneInfo.TryConvertIanaIdToWindowsId和TimeZoneInfo.TryConvertWindowsIdToIanaId方法做两种格式的转换

示例代码

首先引用需要的命名空间:

using System.Globalization;
using System.Collections.Generic;

核心逻辑实现:

// 构建时区ID到区域文化名称的映射,可根据你的业务需要补充所有用到的时区
private static readonly IReadOnlyDictionary<string, string> TimeZoneToCultureMap = new Dictionary<string, string>
{
    {"Bangladesh Standard Time", "bn-BD" }, // 孟加拉
    {"Eastern Standard Time", "en-US" }, // 美国东部
    {"GMT Standard Time", "en-GB" }, // 英国
    // 补充其他你需要的时区映射
};

public static (RegionInfo region, CultureInfo culture)? GetInfoFromTimeZoneId(string timeZoneId)
{
    // 校验时区是否合法
    if (!TimeZoneInfo.TryFindSystemTimeZoneById(timeZoneId, out _))
    {
        return null;
    }
    // 查找时区对应的文化名称
    if (!TimeZoneToCultureMap.TryGetValue(timeZoneId, out var cultureName))
    {
        return null;
    }
    try
    {
        var culture = CultureInfo.GetCultureInfo(cultureName);
        var region = new RegionInfo(culture.Name);
        return (region, culture);
    }
    catch (CultureNotFoundException)
    {
        return null;
    }
}

调用示例

// 从数据库取出的用户时区ID
var userTimeZoneId = "Bangladesh Standard Time";
var info = GetInfoFromTimeZoneId(userTimeZoneId);
if (info.HasValue)
{
    var (region, culture) = info.Value;
    Console.WriteLine("区域信息:");
    Console.WriteLine("* 文化名称: {0}", culture.Name);
    Console.WriteLine("* 文化显示名称: {0}", culture.DisplayName);
    Console.WriteLine("* 2位国家ISO代码: {0}", region.TwoLetterISORegionName); // 输出BD
    Console.WriteLine("* 2位语言ISO代码: {0}", culture.TwoLetterISOLanguageName); // 输出bn
}

如果你的业务覆盖时区很多,不想手动维护映射,可以引入NodaTime等时间处理库,内置了时区和国家的关联查询能力,不需要手动维护映射表。

内容的提问来源于stack exchange,提问作者mnu-nasir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:24:02