ID do artigo: 932955 - Última revisão: terça-feira, 15 de janeiro de 2008 - Revisão: 5.2 Como manipular datas e horas que incluem DST
Nesta páginaINTRODUÇÃOOs desenvolvedores que escrevem aplicativos que lidam com datas e horas podem usar um ou mais tecnologias que executam a manipulação de data e manipulação de tempo. Em particular, determinadas APIs do sistema operacional base, o C runtime (CRT) e o Microsoft .NET Framework podem converter ou caso contrário, manipular datas e horas. Este artigo descreve alguns dos conceitos gerais envolvidos na manipulação de datas e horas. Além disso, este artigo descreve o efeito das alterações de horário de verão (DST) 2007 em determinados produtos e tecnologias. Mais InformaçõesTempo de armazenamento e manipulaçãoCarimbos de data/hora são valores que especificarem uma combinação de data e hora. Aplicativos que devem tratar os carimbos de data/hora normalmente armazenam esses carimbos de data/hora no horário coordenado universal (UTC). A vantagem de UTC é UTC universal. UTC é não sujeitos a fusos horários local ou DST. No entanto, UTC não é amigável nem relevantes para a maioria dos usuários. Embora UTC seja a opção óbvia para o armazenamento, não é uma boa opção para exibição. Portanto, a maioria dos aplicativos converter a hora UTC hora local antes de eles exibir o carimbo de data/hora para o usuário. Por exemplo, Windows Explorer aplicará o fuso horário e a configuração DST para o carimbo de hora UTC antes de exibir datas e horários para arquivos em um diretório de sistema de arquivos Windows NT (NTFS).A conversão de hora UTC em hora local pode ser pensada como aplicar dois deslocamentos. A primeira é o deslocamento de fuso horário e o segundo é o deslocamento do DST. Portanto, hora local é efetivamente hora UTC mais um deslocamento de fuso horário, além de qualquer DST aplicável deslocamento. O deslocamento de fuso horário é relativamente simples. O computador está configurado para um determinado fuso horário e que fuso horário tem um deslocamento de UTC. Para determinar se um deslocamento de DST deve ser aplicado é muito mais complexo. Essa atividade se baseia em muitas regras que são complexos e dinâmicos. Essas regras complexas DST alterou recentemente com horário de verão de 2007. A partir de 2007, Estados Unidos adotou novas datas de início e datas de término novo para DST. Além disso, é comum para outros países e governos rotineiramente alterar as datas de início e as datas de término para horário de verão em fusos horários que estão sob seu controle. A seção seguinte descreve os efeitos da alteração DST 2007 em produtos relacionados ao desenvolvedor. Para obter mais informações sobre o horário de Verão 2007, visite o seguinte site: http://support.microsoft.com/gp/cp_dst
(http://support.microsoft.com/gp/cp_dst)
Efeitos de horário de verão de 2007 sobre tecnologias relacionadas ao desenvolvedorWindowsNo Windows Update e no Microsoft Update, atualizações estão disponíveis que permitem que o Windows para aplicar corretamente as alterações de horário de verão de 2007 e para os anos seguintes. Depois que essas atualizações são aplicadas, o Windows calcula corretamente os deslocamentos atuais da hora UTC para a hora local como o computador passa pelo DST. Os deslocamentos incluem os deslocamentos para as APIs de base e as APIs de rede relacionados a tempo.Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft: 942763
(http://support.microsoft.com/kb/942763/
)
Atualização de cumulativa de fuso horário de dezembro de 2007 para os sistemas operacionais Microsoft Windows C runtime (CRT)A CRT também executa conversões de data e hora conversões. Portanto, a CRT também deve ser atualizada para incluir as novas regras de hora de verão de 2007. A CRT executa seu próprio tempo manipulação somente quando a variável de ambiente TZ está definida ou quando falha uma chamada de tempo de API do sistema operacional subjacente. Atualizações estão disponíveis para os CRTs incluídos com cada versão do Microsoft Visual Studio e também para os CRTs estão incluídos no Windows. Essas atualizações permitem a CRT continuar a lidar corretamente com conversões de hora de verão em fusos horários dos Estados Unidos.O .NET FrameworkO .NET Framework se baseia em chamadas do sistema operacional subjacente. Portanto, o comportamento do .NET Framework reflete o estado do sistema operacional subjacente. Nenhuma atualização separada é necessária.Ambientes de desenvolvimento (IDEs) integrado ao Visual Studio .NETO IDEs de .NET Visual Studio inclui versões 2002, 2003 e 2005 de Microsoft Visual C++, Microsoft Visual translation from VPE for Csharp e Microsoft Visual Basic. Esses produtos são afetados apenas porque elas incluem a CRT. Nenhuma atualização IDE específicas é necessária.O Visual Studio 2005 Team Foundation ServerO Visual Studio 2005 Team Foundation Server depende do sistema operacional subjacente para conversões de data e hora. Portanto, o Visual Studio 2005 Team Foundation Server apresenta o mesmo comportamento que o sistema operacional. O Visual Studio 2005 Team Foundation Server também depende do Microsoft SQL Server, SQL Server Reporting Services e Windows SharePoint Services. Computadores devem ser atualizados com as atualizações relevantes para o sistema operacional, para o SQL Server e para o Windows SharePoint Services. Todas as atualizações relevantes devem ser aplicadas em todos os computadores afetados ao mesmo tempo. Nenhuma atualização Visual Studio 2005 Team Foundation Server separada é necessária.O Visual Studio 2005 Team SystemO Visual Studio 2005 Team System é afetado pelo sistema operacional, por meio do Visual Studio 2005 Team Foundation Server e através do CRT. Não atualização separada do Visual Studio 2005 Team System é necessária.O Visual SourceSafePara obter mais informações sobre problemas do Visual SourceSafe DST em 2007, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:931804
(http://support.microsoft.com/kb/931804/
)
Visual SourceSafe horário de verão problemas em 2007 Tempo de execução do Visual Basic 6.0O runtime do Visual Basic 6.0 não é afetado.O Visual C++ 6.0O Visual C++ 6.0 não é suportada.Para obter mais informações, visite o seguinte site: http://support.microsoft.com/lifecycle/
(http://support.microsoft.com/lifecycle/)
Windows Software Development Kit (SDK) para o Windows VistaEsse SDK inclui uma versão do CRT afectado pelas alterações de horário de verão de 2007. Como parte da instalação desse SDK, você pode instalar o Visual Studio 2005 CRT em computadores que não possuem essa versão do CRT instalado. Se uma versão mais recente do CRT já estiver instalada, a instalação do SDK não substitui a versão mais recente. Quando o SDK é desinstalado, a versão mais recente do CRT é deixada no computador. Ou você pode instalar a atualização do Visual Studio 2005 CRT antes ou depois de instalar o SDK.O Windows SDK para o Windows Vista também instala um conjunto de módulos de mesclagem (arquivos .msm) para o Visual Studio 2005 CRT para redistribuição do CRT como parte de aplicativos C++ personalizados. Um aplicativo que implanta a CRT redistribuível para a pasta de instalação do aplicativo deve implantar a CRT atualizada da atualização Visual Studio 2005 CRT em vez dos arquivos .msm CRT do Windows SDK para Windows Vista. Um aplicativo que implanta a atualização do Visual Studio 2005 CRT redistribuível para a pasta de instalação do Windows deve aplicar a atualização redistribuível do Visual Studio 2005 CRT para esses computadores. Platform SDK para o Microsoft Windows Server 2003 R2Esse SDK inclui uma versão do CRT afectado pelas alterações de horário de verão de 2007. Clientes devem seguir as notas de versão para este SDK e use as atualizações do Visual Studio 2005 CRT se elas forem necessárias.O .NET Framework 2.0 SDKEsse SDK inclui uma versão do CRT afectado pelas alterações de horário de verão de 2007. Como parte da instalação desse SDK, você pode instalar o Visual Studio 2005 CRT em computadores que não possuem essa versão do CRT instalado. Se uma versão mais recente do CRT já estiver instalada, a instalação do SDK não substitui a versão mais recente. Quando o SDK é desinstalado, a versão mais recente do CRT é deixada no computador. Ou você pode instalar a atualização do Visual Studio 2005 CRT antes ou depois de instalar o SDK.Conversão de hora local no WindowsAplicativos normalmente converter vezes UTC em horários locais antes de exibir informações de tempo e as informações de data para o usuário. O Windows fornece várias APIs para aplicativos para usar para manipulação de carimbo de data/hora.
Para ver um exemplo desse comportamento no Windows Explorer, siga estas etapas em um computador que reside em um fuso horário que usa o DST. Esteja ciente de que essas etapas exigem que você alterar o relógio do sistema. Portanto, você deve sair qualquer aplicativos, como aplicativos de calendário, que podem reagir a essas alterações de tempo antes de executar essas etapas.
Para obter mais informações, consulte este blog: http://blogs.msdn.com/oldnewthing/archive/2003/10/24/55413.aspx
(http://blogs.msdn.com/oldnewthing/archive/2003/10/24/55413.aspx)
O método SystemTimeToTzSpecificLocalTime() e o método TzSpecificTimeToSystemTime() converter entre o UTC e a hora local usando a estrutura TIME_ZONE_INFORMATION fornecida. Não se for fornecida nenhuma informação de fuso horário, essas funções usam regras de fuso horário atual e as regras de hora de verão para determinar se um deslocamento de DST devem ser aplicadas para o carimbo de data/hora. Isso equivale funcionalmente à chamando o método GetTimeZoneInformation() para obter a estrutura TIME_ZONE_INFORMATION que está atualmente em vigor. A estrutura TIME_ZONE_INFORMATION inclui a data de início e a data de parada para o DST. Portanto, quando a estrutura TIME_ZONE_INFORMATION usa as informações de fuso horário atuais, estrutura TIME_ZONE_INFORMATION pode introduzir um imprecisão histórico. Esse comportamento pode ocorrer se as informações de fuso horário atual e as informações de DST não refletem o carimbo de hora que está sendo convertido. Esse comportamento é afetado pelo DST 2007 apenas porque as regras que regem as datas quando o DST inicia e pára foram alteradas. Para obter conversões historicamente precisas dessas funções, um aplicativo deve fornecer uma estrutura TIME_ZONE_INFORMATION historicamente precisa quando o aplicativo chama essas funções. Fusos horários dinâmicos no WindowsO Windows Vista apresenta fusos horários dinâmicos DST. DST dinâmico oferece suporte a fusos horários cujos limites para o DST alterar de um ano para o outro. Essas regras são armazenadas no registro. Aplicativos podem consultar as regras usando a função GetDynamicTimeZoneInformation() .Fusos horários dinâmicos ativar a atualização mais fácil de computadores, especialmente para localidades onde os limites de horário de verão anuais são conhecidos previamente. Para obter mais informações sobre a estrutura DYNAMIC_TIME_ZONE_INFORMATION no SDK do Windows para o Vista, visite o seguinte site da Web Microsoft Developer Network (MSDN): http://msdn2.microsoft.com/en-us/library/ms724253.aspx
(http://msdn2.microsoft.com/en-us/library/ms724253.aspx)
Conversão de hora local no C runtime (CRT)A CRT basicamente possui três modos nos quais ele pode traduzir carimbos de data/hora:
Observação Essa conversão segue regras específicas para os Estados Unidos. Antes de aplicar a atualização de horário de verão de 2007, a CRT corretamente lida com carimbos de hora atuais em fusos horários dos Estados Unidos. Depois de aplicar a atualização de horário de verão de 2007, a CRT também manipula passadas e futuras datas Estados Unidos. Atualizações para a CRT são listadas na seção ? referências ?. Conversão de hora local no .NET FrameworkO .NET Framework contém classes que armazenam e converter os carimbos de data/hora. Essas classes incluem a classe DateTime , a classe de fuso horário , a classe TimeSpan e a classe de DateTimeKind . Como observado anteriormente, essas classes dependem principalmente a implementação de plataforma subjacente. Essas classes exibem o mesmo comportamento que o sistema operacional subjacente APIs.Um comportamento interessante apresentado pelas classes do .NET Framework Data e classes de tempo se relaciona com as funções que o carimbo de data/hora de compensada por uma quantidade solicitada. Por exemplo, considere a função AddHours() , a função AddMinutes() e a função AddSeconds() na classe DateTime . Essas funções e nomeado da mesma forma, simplesmente incrementar o carimbo de data/hora pela quantidade solicitada sem levar em consideração as configurações de hora de verão. Esse comportamento pode ser considerado aritmética simples no carimbo de hora UTC subjacente. No entanto, esse comportamento pode levar a resultados inesperados quando a adição faz com que o carimbo de hora passar em ou fora do horário de verão. Esse comportamento é não relacionado a alterações de horário de verão de 2007. RecomendaçõesAs recomendações a seguir podem ajudar os desenvolvedores minimizar o efeito de horário de verão de 2007 e melhorar Data geral e tratamento de tempo.
ReferênciasPara obter mais informações sobre o portal de horário de Verão 2007 Microsoft, visite o seguinte site: http://support.microsoft.com/gp/cp_dst
(http://support.microsoft.com/gp/cp_dst)
Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft: 942763
(http://support.microsoft.com/kb/942763/
)
Atualização de cumulativa de fuso horário de dezembro de 2007 para os sistemas operacionais Microsoft Windows 931975
(http://support.microsoft.com/kb/931975/
)
Como preparar o SQL Server 2005 e o SQL Server 2000 para que as alterações para o horário de verão de 2007 931804
(http://support.microsoft.com/kb/931804/
)
Visual SourceSafe horário de verão problemas em 2007 Para obter mais informações, visite os seguintes sites da Microsoft Developer Network (MSDN):http://msdn2.microsoft.com/en-us/library/ms724277.aspx
(http://msdn2.microsoft.com/en-us/library/ms724277.aspx)
Para obter atualizações de horário de verão de 2007 para o C runtime (CRT), clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:http://msdn2.microsoft.com/en-us/library/ms724490.aspx (http://msdn2.microsoft.com/en-us/library/ms724490.aspx) http://msdn2.microsoft.com/en-us/library/ms725473.aspx (http://msdn2.microsoft.com/en-us/library/ms725473.aspx) 932305
(http://support.microsoft.com/kb/932305/
)
CORRECÇÃO: Visual C++ .NET 2002 C runtime horário de Verão 2007 atualização para o problema de variável de ambiente TZ 932304
(http://support.microsoft.com/kb/932304/
)
CORRECÇÃO: Visual C++ .NET 2002 Service Pack 1 C runtime horário de Verão 2007 atualização para o problema de variável de ambiente TZ 932299
(http://support.microsoft.com/kb/932299/
)
CORRECÇÃO: Visual C++ .NET 2003 C runtime horário de Verão 2007 atualização para o problema de variável de ambiente TZ 932298
(http://support.microsoft.com/kb/932298/
)
CORRECÇÃO: Visual C++ .NET 2003 Service Pack 1 C runtime horário de Verão 2007 atualização para o problema de variável de ambiente TZ 932392
(http://support.microsoft.com/kb/932392/
)
CORRECÇÃO: Visual C++ .NET 2005 C runtime horário de Verão 2007 atualização para a variável de ambiente TZ 932391
(http://support.microsoft.com/kb/932391/
)
CORRECÇÃO: Visual C++ .NET 2005 Service Pack 1 C runtime horário de Verão 2007 atualização para a variável de ambiente TZ 932590
(http://support.microsoft.com/kb/932590/
)
CORRECÇÃO: Aplicativos baseados no Windows que usam a variável de ambiente TZ podem não funcionar conforme o esperado devido às alterações à hora de verão A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 932955
(http://support.microsoft.com/kb/932955/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar para o início