classe Win32_TimeZone

A classe WMIWin32_TimeZone representa as informações de fuso horário de um sistema de computador que executa o Windows, que inclui as alterações necessárias para a transição para a transição do horário de verão.

A sintaxe a seguir é simplificada do código MOF (Managed Object Format) e inclui todas as propriedades herdadas. Propriedades e métodos estão em ordem alfabética, não em ordem MOF.

Sintaxe

[Dynamic, Provider("CIMWin32"), UUID("{8502C4EC-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_TimeZone : CIM_Setting
{
  string Caption;
  string Description;
  string SettingID;
  sint32 Bias;
  sint32 DaylightBias;
  uint32 DaylightDay;
  uint8  DaylightDayOfWeek;
  uint32 DaylightHour;
  uint32 DaylightMillisecond;
  uint32 DaylightMinute;
  uint32 DaylightMonth;
  string DaylightName;
  uint32 DaylightSecond;
  uint32 DaylightYear;
  uint32 StandardBias;
  uint32 StandardDay;
  uint8  StandardDayOfWeek;
  uint32 StandardHour;
  uint32 StandardMillisecond;
  uint32 StandardMinute;
  uint32 StandardMonth;
  string StandardName;
  uint32 StandardSecond;
  uint32 StandardYear;
};

Membros

A classe Win32_TimeZone tem estes tipos de membros:

Propriedades

A classe Win32_TimeZone tem essas propriedades.

Tendência

Tipo de dados: sint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| Bias"), Unidades ("minutos")

Desvio atual para tradução de horário local. O desvio é a diferença entre o UTC (Tempo Universal Coordenado) e a hora local. Todas as traduções entre UTC e hora local são baseadas na seguinte fórmula: UTC = hora local – desvio. Esta propriedade é necessária.

Legenda

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MaxLen (64)

Descrição textual curta do objeto atual.

Essa propriedade é herdada de CIM_Setting.

Daylightbias

Tipo de dados: sint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightBias"), Unidades ("minutos")

Valor de desvio a ser usado durante traduções de horário local que ocorrem durante o horário de verão. Essa propriedade será ignorada se um valor para a propriedade DaylightDay não for fornecido. O valor dessa propriedade é adicionado à propriedade Bias para formar o desvio usado durante o horário de verão. Na maioria dos fusos horários, o valor dessa propriedade é -60.

DaylightDay

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightDate|wDay")

DaylightDayOfWeek do DaylightMonth quando ocorre a transição do horário padrão para o horário de verão neste sistema operacional.

Exemplo: se o dia de transição (DaylightDayOfWeek) ocorrer em um domingo, o valor "1" indicará o primeiro domingo do DaylightMonth, "2" indicará o segundo domingo e assim por diante. O valor "5" indica o último DaylightDayOfWeek no mês.

DaylightDayOfWeek

Tipo de dados: uint8

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightDate|wDayOfWeek")

Dia da semana em que a transição do horário padrão para o horário de verão ocorre em um sistema operacional.

Domingo (0)

Segunda-feira (1)

Terça-feira (2)

Quarta-feira (3)

Quinta-feira (4)

Sexta-feira (5)

Sábado (6)

Example: 1

DaylightHour

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightDate|wHour")

Hora do dia em que a transição do horário padrão para o horário de verão ocorre em um sistema operacional.

Exemplo: 2

DaylightMillisecond

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightDate|wMilliseconds")

Milissegundo do DaylightSecond quando a transição do horário padrão para o horário de verão ocorre em um sistema operacional.

DaylightMinute

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightDate|wMinute")

Minuto do DaylightHour quando a transição do horário padrão para o horário de verão ocorre em um sistema operacional.

Exemplo: 59

DaylightMonth

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightDate|wMonth")

Mês em que a transição do horário padrão para o horário de verão ocorre em um sistema operacional.

Janeiro (1)

Fevereiro (2)

Março (3)

Abril (4)

Maio (5)

Junho (6)

Julho (7)

Agosto (8)

Setembro (9)

Outubro (10)

Novembro (11)

Dezembro (12)

Daylightname

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MaxLen (256), MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightName")

Fuso horário que está sendo representado quando o horário de verão está em vigor.

Exemplo: "EDT" (Horário de Verão do Leste)

DaylightSecond

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightDate|wSecond")

Segundo do DaylightMinute quando a transição do horário padrão para o horário de verão ocorre em um sistema operacional.

Exemplo: 59

DaylightYear

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| DaylightDate|wYear")

Ano em que o horário de verão está em vigor. Essa propriedade não é necessária.

Exemplo: 1997

Descrição

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Descrição textual do objeto atual.

Essa propriedade é herdada de CIM_Setting.

Settingid

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MaxLen (256)

Identificador pelo qual o objeto atual é conhecido.

Essa propriedade é herdada de CIM_Setting.

Standardbias

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardBias"), Unidades ("minutos")

Valor de desvio a ser usado quando o horário de verão não estiver em vigor. Essa propriedade será ignorada se um valor para StandardDay não for fornecido. O valor dessa propriedade é adicionado à propriedade Bias para formar o viés durante o tempo padrão.

Exemplo: 0

StandardDay

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardDate|wDay")

StandardDayOfWeek do StandardMonth quando a transição do horário de verão para o horário padrão ocorre em um sistema operacional.

Se o dia de transição (StandardDayOfWeek) ocorrer em um domingo, o valor "1" indicará o primeiro domingo do StandardMonth, "2" indicará o segundo domingo e assim por diante. O valor "5" indica o último StandardDayOfWeek no mês.

StandardDayOfWeek

Tipo de dados: uint8

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardDate|wDayOfWeek")

Dia da semana em que a transição do horário de verão para o horário padrão ocorre em um sistema operacional.

Domingo (0)

Segunda-feira (1)

Terça-feira (2)

Quarta-feira (3)

Quinta-feira (4)

Sexta-feira (5)

Sábado (6)

StandardHour

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardDate|wHour")

Hora do dia em que a transição do horário de verão para o horário padrão ocorre em um sistema operacional.

Exemplo: 11

StandardMillisecond

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardDate|wMilliseconds")

Milissegundo do StandardSecond quando a transição do horário de verão para o horário padrão ocorre em um sistema operacional.

StandardMinute

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardDate|wMinute")

Minuto do StandardDay quando a transição do horário de verão para o horário padrão ocorre em um sistema operacional.

Exemplo: 59

StandardMonth

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardDate|wMonth")

Mês em que ocorre a transição do horário de verão para o horário padrão em um sistema operacional.

Janeiro (1)

Fevereiro (2)

Março (3)

Abril (4)

Maio (5)

Junho (6)

Julho (7)

Agosto (8)

Setembro (9)

Outubro (10)

Novembro (11)

Dezembro (12)

Standardname

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: key, MaxLen (256), MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardName")

Nome do fuso horário que está sendo representado quando a hora padrão está em vigor.

Exemplo: "EST" (Hora Padrão do Leste)

StandardSecond

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardDate|wSecond")

Segundo do StandardMinute quando a transição do horário de verão para o horário padrão ocorre em um sistema operacional.

Exemplo: 59

StandardYear

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de tempo| TIME_ZONE_INFORMATION| StandardDate|wYear")

Ano em que a hora padrão está em vigor. Essa propriedade não é necessária.

Exemplo: 1997

Comentários

A classe Win32_TimeZone é derivada de CIM_Setting.

Não é possível usar formatos de data e hora padrão , como 18/10/2002, ao escrever consultas WMI. Em vez disso, você precisa converter todas as datas usadas em suas consultas para o formato UTC. Isso requer duas etapas: 1) Você deve determinar o deslocamento (diferença em minutos) entre o fuso horário e o Horário de Greenwich e 2) você deve converter 18/10/2002 em um valor UTC.

Determinando o deslocamento do tempo médio de Greenwich

É certo que o WMI dificulta o trabalho com datas e horas; Felizmente, o WMI pelo menos facilita a determinação do deslocamento entre o fuso horário e o Horário de Greenwich. A classe WMI Win32_TimeZone inclui uma propriedade - Bias - que retorna o deslocamento GMT.

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
 ("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
 Wscript.Echo "Offset: "& objTimeZone.Bias
Next

Convertendo uma data em um valor UTC

Depois de determinar o deslocamento GMT, você deve converter uma data padrão, como 18/10/2002, em uma data UTC. Para converter uma data padrão em uma data UTC, você pode usar funções de data do VBScript, como Ano, Mês e Dia, para isolar os componentes individuais que compõem uma data UTC. Depois de ter valores individuais para esses componentes, você pode concatená-los da mesma maneira que faria com qualquer outro valor de cadeia de caracteres. As datas UTC são tratadas como cadeias de caracteres porque o deslocamento GMT deve ser acrescentado ao final. Se a data fosse vista como um número, esse valor:

20011018113047.000000-480

Seria erroneamente tratado como uma equação matemática (parênteses adicionados para maior clareza):

(20011018113047.000000) - (480)

Por exemplo, na data 18/10/2002, os componentes individuais são:

  • Ano: 2002
  • Mês: 10
  • Dia: 18

O script precisaria combinar esses três valores, a cadeia de caracteres "113047.000000" (representando a hora, incluindo milissegundos) e o deslocamento GMT para derivar uma data UTC. Por exemplo, (parênteses adicionados novamente para maior clareza):

(2002) & (10) & (18) & (113047.000000) & (-480)

Observação

Você pode usar as funções hour, minute e second do VBScript para converter a parte de hora de uma data UTC. Assim, uma hora como 11:30:47 seria convertida em 113047.

 

Há um fator complicador. O mês deve assumir as posições 5 e 6 na cadeia de caracteres; o dia deve assumir as posições 7 e 8. Isso não é problema com o mês 10 e o dia 18. Mas como você obtém 5 de julho (mês 7, dia 5) para preencher as posições necessárias? A resposta é adicionar um zero à esquerda a cada valor, alterando assim o 7 para 07 e o 5 para 05.

Para fazer isso, use a função Len do VBScript para marcar o comprimento (número de caracteres) no mês e no dia. Se o comprimento for 1 (o que significa que há apenas um caractere), adicione um zero à esquerda. Assim:

If Len(dtmMonth) = 1 Then
    dtmMonth = "0" & dtmMonth
End If

Exemplos

O exemplo de VBScript a seguir converte a data atual em uma data UTC.

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
 ("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
 strBias = objTimeZone.Bias
Next

dtmCurrentDate = Date
dtmTargetDate = Year(dtmCurrentDate)

dtmMonth = Month(dtmCurrentDate)
If Len(dtmMonth) = 1 Then
 dtmMonth = "0" & dtmMonth
End If

dtmTargetDate = dtmTargetDate & dtmMonth

dtmDay = Day(dtmCurrentDate)
If Len(dtmDay) = 1 Then
 dtmDay = "0" & dtmDay
End If

dtmTargetDate = dtmTargetDate & dtmDay & "000000.000000"
dtmTargetDate = dtmTargetDate & Cstr(strBias)

O exemplo de VBScript a seguir determina o deslocamento GMT e converte uma data atual especificada (nesse caso, 18/10/2002) em formato de data e hora UTC. Depois que a data for convertida, esse valor será usado para pesquisar um computador e retornará uma lista de todas as pastas que foram criadas após 18/10/2002.

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
 ("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
 strBias = objTimeZone.Bias
Next

dtmCurrentDate = "10/18/2002"
dtmTargetDate = Year(dtmCurrentDate)

dtmMonth = Month(dtmCurrentDate)
If Len(dtmMonth) = 1 Then
 dtmMonth = "0" & dtmMonth
End If

dtmTargetDate = dtmTargetDate & dtmMonth

dtmDay = Day(dtmCurrentDate)
If Len(dtmDay) = 1 Then
 dtmDay = "0" & dtmDay
End If

dtmTargetDate = dtmTargetDate & dtmDay & "000000.000000"
dtmTargetDate = dtmTargetDate & Cstr(strBias)

Set colFolders = objSWbemServices.ExecQuery _
 ("SELECT * FROM Win32_Directory WHERE CreationDate < '" & _
 dtmtargetDate & "'")
For Each objFolder in colFolders
 Wscript.Echo objFolder.Name
Next

O exemplo de código VBScript a seguir exibe as configurações para Win32_TimeZone instâncias.

Dim arDayOrWeek(7)
arDayOrWeek(0) = "Sunday"
arDayOrWeek(1) = "Monday"
arDayOrWeek(2) = "Tuesday"
arDayOrWeek(3) = "Wednesday"
arDayOrWeek(4) = "Thursday"
arDayOrWeek(5) = "Friday"
arDayOrWeek(6) = "Saturday"

Dim arMonth(13)
arMonth(1) = "January"
arMonth(2) = "Feburary"
arMonth(3) = "March"
arMonth(4) = "April"
arMonth(5) = "May"
arMonth(6) = "June"
arMonth(7) = "July"
arMonth(8) = "August"
arMonth(9) = "September"
arMonth(10) = "October"
arMonth(11) = "November"
arMonth(12) = "December"

strComputer = "."
wmiQuery = "Select * from Win32_TimeZone"
Set objWMIService = GetObject("winmgmts:\\" & _
    strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery(wmiQuery)

For Each objItem in colItems
    WScript.Echo "Day of Week setting is: " _
        & objItem.dayLightDayOfWeek _
        & " which is: " & arDayOrWeek(objItem.DaylightDayOfWeek)
    WScript.Echo "Hour: " & objItem.DaylightHour 
    WScript.Echo "Month: " & objItem.DaylightMonth _
        & " which is: " & arMonth(objItem.DaylightMonth )
    WScript.Echo "Description: " & objItem.DaylightName 
    WScript.Echo "The transition from DLS to Standard occurs: " 
    WScript.Echo "Day of Week setting is: " _
        & objItem.standardDayOfWeek _
        & " which is: " & arDayOrWeek(objItem.DaylightDayOfWeek)
    WScript.Echo "Hour: " & objItem.StandardHour 
    WScript.Echo "Month: " & objItem.StandardMonth _ 
        & " which is: " & arMonth(objItem.StandardMonth )
    WScript.Echo "Description: " & objItem.StandardName 
Next

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Confira também

CIM_Setting

Classes do sistema operacional

SWbemDateTime

Formato de data e hora

Tarefas do WMI: datas e horas