Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método TimeZoneInfo.GetSystemTimeZones

Retorna uma coleção classificada todo o tempo das zonas sobre o qual as informações estão disponíveis no sistema local.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public static ReadOnlyCollection<TimeZoneInfo> GetSystemTimeZones()

Valor de retorno

Tipo: System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo>
Uma coleção somente leitura de objetos de TimeZoneInfo .

ExceçãoCondição
OutOfMemoryException

Não há memória suficiente para armazenar todas as informações de fuso horário.

SecurityException

O usuário não tem permissão para ler chaves do Registro que contêm informações de fuso horário.

O método de GetSystemTimeZones recupera todas as informações disponíveis de fuso horário subchaves de HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT \ registry key \ CurrentVersion de fuso horário. Se for não é possível recuperar e analisar com êxito valores para propriedades específicas de cadeia de caracteres de objetos individuais de TimeZoneInfo , conjuntos desse método seu valor como uma cadeia de caracteres vazia ("").

Observação importanteImportante

O método de GetSystemTimeZones retorna uma coleção de objetos de TimeZoneInfo apenas para os fusos horários definidos no Registro. Não inclui os fusos horários criados usando as sobrecargas do método de CreateCustomTimeZone . Esses são acessíveis apenas com a referência de objeto retornadas antes de método de criação da zona.

A coleção retornada por esse método é classificada pelo nome para exibição usando a cultura atual. Para obter informações sobre o nome para exibição, consulte DisplayName.

O objeto de ReadOnlyCollection<T> retornado por este método da suporte à interface de IEnumerable<T> , o que significa que pode ser iterada usando foreach (em C#) ou instruções de For Each…Next (no Visual Basic). Cada iteração do loop fornece o próximo objeto de TimeZoneInfo na coleção.

A coleção de objetos de TimeZoneInfo representa os fusos horários definidos no computador local; não necessariamente fornece informações completas para todos os fusos horários durante todos os períodos de tempo. Se seu aplicativo requer que os fusos horários não localizados no computador local, você pode criar fusos horários personalizados usando as sobrecargas do método de CreateCustomTimeZone . Para obter mais informações, consulte Como criar fusos horários sem regras de ajuste e Como criar fusos horários com regras de ajuste.

Você também pode determinar se um fuso horário individual está definido no computador local chamando o método de FindSystemTimeZoneById e fornecendo o identificador de fuso horário que você deseja recuperar como um parâmetro.

O exemplo a seguir recupera uma coleção de objetos de fuso horário que representam os fusos horários definidos em um computador e grava informações sobre eles em um arquivo de texto.


using System;
using System.Globalization;
using System.IO;
using System.Collections.ObjectModel;

public class Example
{
   public static void Main()
   {
      const string OUTPUTFILENAME = @"C:\Temp\TimeZoneInfo.txt";

      DateTimeFormatInfo dateFormats = CultureInfo.CurrentCulture.DateTimeFormat;
      ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones(); 
      StreamWriter sw = new StreamWriter(OUTPUTFILENAME, false);

      foreach (TimeZoneInfo timeZone in timeZones)
      {
         bool hasDST = timeZone.SupportsDaylightSavingTime;
         TimeSpan offsetFromUtc = timeZone.BaseUtcOffset;
         TimeZoneInfo.AdjustmentRule[] adjustRules;
         string offsetString;

         sw.WriteLine("ID: {0}", timeZone.Id);
         sw.WriteLine("   Display Name: {0, 40}", timeZone.DisplayName);
         sw.WriteLine("   Standard Name: {0, 39}", timeZone.StandardName);
         sw.Write("   Daylight Name: {0, 39}", timeZone.DaylightName);
         sw.Write(hasDST ? "   ***Has " : "   ***Does Not Have ");
         sw.WriteLine("Daylight Saving Time***");
         offsetString = String.Format("{0} hours, {1} minutes", offsetFromUtc.Hours, offsetFromUtc.Minutes);
         sw.WriteLine("   Offset from UTC: {0, 40}", offsetString);
         adjustRules = timeZone.GetAdjustmentRules();
         sw.WriteLine("   Number of adjustment rules: {0, 26}", adjustRules.Length);  
         if (adjustRules.Length > 0)
         {
            sw.WriteLine("   Adjustment Rules:");
            foreach (TimeZoneInfo.AdjustmentRule rule in adjustRules)
            {
               TimeZoneInfo.TransitionTime transTimeStart = rule.DaylightTransitionStart;
               TimeZoneInfo.TransitionTime transTimeEnd = rule.DaylightTransitionEnd; 

               sw.WriteLine("      From {0} to {1}", rule.DateStart, rule.DateEnd);
               sw.WriteLine("      Delta: {0}", rule.DaylightDelta);
               if (! transTimeStart.IsFixedDateRule)
               {
                  sw.WriteLine("      Begins at {0:t} on {1} of week {2} of {3}", transTimeStart.TimeOfDay, 
                                                                                transTimeStart.DayOfWeek,                                                                                 
                                                                                transTimeStart.Week, 
                                                                                dateFormats.MonthNames[transTimeStart.Month - 1]);
                  sw.WriteLine("      Ends at {0:t} on {1} of week {2} of {3}", transTimeEnd.TimeOfDay,
                                                                                transTimeEnd.DayOfWeek, 
                                                                                transTimeEnd.Week,
                                                                                dateFormats.MonthNames[transTimeEnd.Month - 1]);
               }
               else
               {
                  sw.WriteLine("      Begins at {0:t} on {1} {2}", transTimeStart.TimeOfDay, 
                                                                 transTimeStart.Day, 
                                                                 dateFormats.MonthNames[transTimeStart.Month - 1]);
                  sw.WriteLine("      Ends at {0:t} on {1} {2}", transTimeEnd.TimeOfDay, 
                                                               transTimeEnd.Day, 
                                                               dateFormats.MonthNames[transTimeEnd.Month - 1]);
               }
            }
         }            
      }
      sw.Close();
   }
}


.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft