Сокращения часовых поясов Windows в ASP.NET

Они вообще существуют? Мне действительно надоело отображать" Стандартное романтическое время " моим европейским пользователям и пытаюсь объяснить, почему их «центральноевропейское время» не может отображаться как «CET». Если бы я проанализировал «Стандартное романтическое время» и представил им «RST», это было бы для них бессмысленным или, возможно, перепутанным с «Русским стандартным временем» или другой чепухой.

Разве нет способа извлечь из общепринятых сокращений Windows? Мне нужно что-то, что работает в Северной Америке, Южной Америке, Европе, Африке и Азии.

ОБНОВЛЕНИЕ: Я знаю, что это полный взлом, но он, вероятно, поможет мне в 90% случаев, которые меня волнуют. Если у вас есть предложения, я все еще слушаю;)

    /// <summary>
    /// Gets the current time zone abbreviation, corrected for Daylight Saving Time (if applicable)
    /// </summary>
    /// <param name="timeZoneId">The time zone id.</param>
    /// <returns></returns>
    public static string GetTZAbbrev(string timeZoneId)
    {
      var timeZoneInfos = TimeZoneInfo.GetSystemTimeZones();
      var abbrev = string.Empty;

      foreach (var timeZoneInfo in timeZoneInfos)
      {
        if (timeZoneInfo.Id != timeZoneId) continue;

        string[] words;

        if (timeZoneInfo.IsDaylightSavingTime(DateTime.UtcNow))
        {
          words = timeZoneInfo.DaylightName.Split(' ');         
        }
        else
        {
          words = timeZoneInfo.StandardName.Split(' ');         
        }

        foreach (var word in words)
        {
          abbrev += word[0];
        }
      }
      return abbrev;
    }
5
задан Mark Richman 16 November 2010 в 16:48
поделиться