有人知道一个翻译过的时区描述来源吗?

5

有人知道Windows中时区名称的翻译列表吗?我需要德语、法语和西班牙语的全部75个左右的翻译。或者,如何使用.Net编译这样的列表?

示例格式:(GMT+01:00)贝尔格莱德、布拉迪斯拉发、布达佩斯、卢布尔雅那、布拉格

3个回答

8

这应该是被接受的答案。另外,我有一个名为 TimeZoneNames 的 .NET 库,使得这个数据可以很容易地被消费。 - Matt Johnson-Pint

3

0

注册表中列出了所有时区的列表:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

可以使用以下方式加载:

ArrayList zones = new ArrayList();

using( RegistryKey key = Registry.LocalMachine.OpenSubKey(
    @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones" ) )
{
    string[] zoneNames = key.GetSubKeyNames();

    foreach( string zoneName in zoneNames )
    {
        using( RegistryKey subKey = key.OpenSubKey( zoneName ) )
        {
            TimeZoneInformation tzi = new TimeZoneInformation();
            tzi.Name = zoneName;
            tzi.DisplayName = (string)subKey.GetValue( "Display" );
            tzi.StandardName = (string)subKey.GetValue( "Std" );
            tzi.DaylightName = (string)subKey.GetValue( "Dlt" );
            object value = subKey.GetValue( "Index" );
            if( value != null )
            {
                tzi.Index = (int)value;
            }

            tzi.InitTzi( (byte[])subKey.GetValue( "Tzi" ) );

            zones.Add( tzi );
        }
    }
}

TimeZoneInformation只是一个存储信息以便于访问的类。

您要查找的描述在显示值中。


3
这个回答似乎有几个错误。首先,原发帖者要求翻译名称。其次,您可以直接使用TimeZoneInfo.GetSystemTimeZones()而不是所示代码。 - Elroy Flynn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接