如何获取一个国家/地区的时区?

问题描述 投票:0回答:1

在我的 .NET 8 应用程序中,我当前使用两个库:TimeZoneNamesTimeZoneConverter。我发现 TimeZoneNames 没有得到积极维护,作者建议改用 .NET 6+ 内置类。

我需要仅使用标准 .NET 8 功能来实现以下目标:

  1. 获取特定国家的所有时区,类似于

    TimeZoneNames.GetTimeZonesForCountry

    var zones = TZNames.GetTimeZonesForCountry("BR", "pt-BR");
    
  2. 获取时区的本地化显示名称,例如欧洲/莫斯科时区的俄语“Москва”或西班牙语“Moscu”。

我已经查看了 Microsoft 博客上的可用文档、Stack Overflow 上的问题,但在没有像

NodaTime
这样的第三方库的情况下找不到实现此目的的方法。我知道
IANA
时区可以按国家/地区分组,并且
TimeZoneNames
使用此功能。

有没有办法在.NET 8中实现这一点而不依赖外部库?

c# datetime timezone
1个回答
0
投票

我认为没有足够的标准 .NET 函数为此目的而创建,因为它非常特殊和具体。

您可能需要自己手动创建一个系统并为其创建自己的功能。

您可以做的可能是找到一个时区和/或语言翻译的数据库,或者自己创建一个数据库并在代码中访问它。

© www.soinside.com 2019 - 2024. All rights reserved.