获取某个国家/地区的默认时区(通过 CultureInfo)

2023-12-05

是否有程序或表格提供每个国家/地区的默认时区?

是的,美国、加拿大和俄罗斯有多个时区。 (我认为其他每个国家/地区都只有一个。)但是,最好从最有可能知道的国家/地区开始,而不是仅提供从 GMT 开始的列表。

最好使用 C#,但我会将其放入任何内容中并转换为 C#。


正如问题评论中所指出的,您将无法获得每个国家/地区的单个时区。拥有多个时区的国家的例子太多了。

你什么can做的是过滤标准列表IANA/奥尔森时区直至特定国家/地区可用。

在 C# 中执行此操作的一种方法是野田时间:

IEnumerable<string> zoneIds = TzdbDateTimeZoneSource.Default.ZoneLocations
    .Where(x => x.CountryCode == countryCode)
    .Select(x => x.ZoneId);

传递两位数的 ISO-3166 国家/地区代码,例如"AU"对于澳大利亚。结果是:

"Australia/Lord_Howe",
"Australia/Hobart",
"Australia/Currie",
"Australia/Melbourne",
"Australia/Sydney",
"Australia/Broken_Hill",
"Australia/Brisbane",
"Australia/Lindeman",
"Australia/Adelaide",
"Australia/Darwin",
"Australia/Perth",
"Australia/Eucla"

如果出于某种原因您想要 Windows 时区标识符,您可以将其与TimeZoneInfo对象,Noda Time 也可以映射这些:

var source = TzdbDateTimeZoneSource.Default;
IEnumerable<string> windowsZoneIds = source.ZoneLocations
    .Where(x => x.CountryCode == countryCode)
    .Select(tz => source.WindowsMapping.MapZones
        .FirstOrDefault(x => x.TzdbIds.Contains(
                             source.CanonicalIdMap.First(y => y.Value == tz.ZoneId).Key)))
    .Where(x => x != null)
    .Select(x => x.WindowsId)
    .Distinct()

再次调用"AU"对于澳大利亚退货:

"Tasmania Standard Time",
"AUS Eastern Standard Time",
"Cen. Australia Standard Time",
"E. Australia Standard Time",
"AUS Central Standard Time",
"W. Australia Standard Time"

如果您想知道该数据的可靠性如何,国家/地区到 tzid 的映射是 IANA 时区数据库本身的一部分,位于zone.tab文件。 IANA 到 Windows 的映射数据来自Unicode CLDR 补充数据。没有比这更接近“官方”的了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取某个国家/地区的默认时区(通过 CultureInfo) 的相关文章

随机推荐

  • ASP.NET 中 APP_Data 文件夹的安全性

    我的 Microsoft Access DB 文件位于 APP DATA 文件夹中 我的服务器是 Windows 2003 我想知道保护此文件的最佳方法是什么 那么哪一种更安全呢 wwwroot App data 数据库 mdb or db
  • crti.o 文件丢失

    我正在使用 GNU 工具链构建一个项目 一切正常 直到我开始链接它 链接器抱怨它丢失 找不到crti o 这不是我的目标文件之一 它似乎与 libc 有关 但我不明白为什么它需要这个crti o 它不会使用库文件吗 例如libc a 我正在
  • 获取 GitHub 存储库的本地副本、跟踪更改并将更新推送回远程

    我在 GitHub 上有一个存储库 我想用对从中提取它的文件夹所做的更改来更新它 Git 新用户从使用的那一刻起就应该执行哪些步骤 不用行话或简写术语 cd directory 包括如何跟踪对任何文件所做的本地更改 以及如何将这些更改和更新
  • 一个框架。滚轮滚动放大

    我已经浏览了官方文档 但无法找到有关放大 缩小可能性的信息panorama图像 A 框架是否支持它 或者可能有一个解决方法可以阅读有关实现某些three js在它的上面 这可能是 2018 年更清洁的方式 我将 Aframe 相机的变焦限制
  • Laravel - 在标头中发送 api_token

    我正在为 Laravel 构建一个 API 我想在标头中发送 api token 而不是表单帖子 这是已经内置的东西还是我必须弄清楚如何创建自己的身份验证驱动程序 经过我自己的努力 我终于成功了 您需要首先遵循这个小教程 了解如何在 Lar
  • 从 Swift 访问 Azure 表存储

    我想从 Swift 访问 azure 表存储 制作标题的指令是here但是 我尝试构建请求但无法使其工作 let urlString https
  • 使用 PyGame 显示 PyMunk - Python

    我正在尝试学习 PyMunk 我使用了网站上的基本示例 import pymunk space pymunk Space space gravity 0 1000 body pymunk Body 1 1666 body position
  • 如何为包装 TableRow 的类指定/定义编码器

    我定义了一个类来包装com google api services bigquery model TableRow类将其定义为内部成员 public class TableRowWrapper implements Serializable
  • 结构填充

    我试图将文件中的数据块直接读取到结构中 但填充导致读取太多数据并且数据未对齐 我是否必须手动将每个部分读入结构中 或者是否有更简单的方法来执行此操作 My code 结构体 typedef unsigned char byte struct
  • 如何在backbone.js中通过全局变量创建集合?

    我在 stackoverflow 上得到了很多顾问的帮助 我的部分问题得到了解决 但还有一些问题仍然存在 我查阅了答案 并尝试解决问题 因为我理解了 javascript 命名空间模式 避免污染全局命名空间的命名空间模式 有关此命名空间模式
  • 闪亮的允许用户选择要显示的列

    我正在涉足闪亮的数据表功能 我有兴趣创建一个井面板或侧面板 列出数据表的所有列 并允许用户选择他们想要在数据表上看到的列 现在下面的代码显示玩具数据集的所有列mtcars library shiny runApp list ui basic
  • Sklearn MLP 特征选择

    带交叉验证的递归特征消除 RFEVC 不适用于多层感知器估计器 以及其他几个分类器 我希望在许多分类器中使用特征选择 执行交叉验证来验证其特征选择 有什么建议么 对于结构化数据 有一个独立于模型选择的特征选择 称为排列重要性 解释得很好he
  • 在 V8 中执行函数的具体执行次数是多少之后变得很热?

    我正在学习 V8 的内部工作原理 发现有 JIT 编译器 它可以通过内联缓存技术动态优化热函数 我只有两个问题 第一 函数只要连续执行几次就算热函数吗 其次 V8 中函数在重复执行多少次之后就会变热 V8 开发者在这里 函数的 热度 不仅仅
  • 静态方法内存消耗

    我有以下具有以下方法的类 public class Foo public string A get set public static Foo New string a Foo newFoo new Foo newFoo A a retur
  • TShellTreeView 在哪里?

    我正在尝试在 Delphi 10 Seattle 中编译一个旧项目并收到以下错误消息 类 TShellTreeView 未找到单击取消忽略 TShellTreeView是一个设计时组件 是ShellCtrls软件包 始终随 Delphi 一
  • Delphi 和 PHP 中的安全密钥对加密解决方案?

    我的应用程序通过互联网发送加密文件 我需要能够执行以下操作 客户端 Delphi 2010 使用加密文件公钥随我的应用程序一起提供并上传到服务器 服务器端 PHP 使用我的解密上传的文件私钥存储在服务器上 处理上传的文件 听起来很简单 但我
  • MATCH 或 VLOOKUP 从范围末尾开始

    我有一张看起来像这样的桌子 A B ID1 data 123 ID2 data 234 ID1 data 456 ID2 data 567 我正在尝试找到最好的检索方法data 567对于 ID2 在 ID2 上使用 MATCH 使用选项
  • 如何显示尽可能多的项目适合一行,如果全部不适合显示剩余项目的数量

    我刚刚开始学习Svelte 我想在一行中显示尽可能多的电子邮件 并使用如下数字显示剩余的电子邮件 https i stack imgur com 9k7np jpg 我想在不修改父组件中的代码的情况下实现这一点 我只是想改变DisplayE
  • Java 获取屏幕上的像素颜色?

    您好 我正在尝试获取 JFrame 上特定像素的颜色 这是我的代码 我的镜框是红色的 我遇到的问题是 当我单击框架时 它应该返回红色的 RGB 颜色 即 255 0 0 但是当我单击不同的点时 有时会得到白色的 RGB 颜色 255 255
  • 获取某个国家/地区的默认时区(通过 CultureInfo)

    是否有程序或表格提供每个国家 地区的默认时区 是的 美国 加拿大和俄罗斯有多个时区 我认为其他每个国家 地区都只有一个 但是 最好从最有可能知道的国家 地区开始 而不是仅提供从 GMT 开始的列表 最好使用 C 但我会将其放入任何内容中并转