Partilhar via


Recuperando informações de data e hora

Este tópico inclui instruções para utilizar as funções NLS nas suas aplicações para recuperar informações de data e hora, bem como dados de duração. Se o seu aplicativo precisar persistir dados, consulte Usando dados de localidade persistente.

Windows Vista e versões posteriores: As funções discutidas neste tópico podem recuperar dados de locais personalizadas. Em particular, eles podem ser usados para personalizar formatos de data e hora. Por exemplo, é possível ter um formato de tempo como "hhHmm'ss''", resultando em cadeias de tempo como "12H34'12''".

Recuperar informações de tempo

A sua aplicação pode obter sequências de caracteres para qualquer hora num formato apropriado para a localidade atual utilizando as funções GetTimeFormat e GetTimeFormatEx. Cada uma das funções verifica cada um dos valores de tempo em uma estrutura válida deSYSTEMTIMEpara determinar se está dentro do intervalo apropriado de valores, ignorando as seções de data da estrutura. Se qualquer um dos valores de tempo estiver fora do intervalo correto, a função falhará com o código ERROR_INVALID_PARAMETER. A função não retorna erros para uma cadeia de caracteres de formato incorreto, mas simplesmente forma a melhor cadeia de tempo possível.

Observação

As funções de tempo NLS não incluem milissegundos como parte de uma cadeia de caracteres de tempo formatada.

 

Para obter o formato de hora sem executar nenhuma formatação real, o aplicativo pode usar o GetLocaleInfo ou função GetLocaleInfoEx, especificando a constante LOCALE_STIMEFORMAT na chamada.

Usar marcadores de tempo

Exemplos de marcadores de tempo são "AM" e "PM" para inglês (Estados Unidos) e "de." e "du." para espanhol (México). Se TIME_NOTIMEMARKER for especificado na chamada para GetTimeFormat ou GetTimeFormatEx, a função removerá o(s) separador(es) anterior e posterior ao indicador de tempo. Se existir um marcador de tempo e o sinalizador de TIME_NOTIMEMARKER não estiver definido na chamada, a função localizará o marcador de tempo com base no identificador de localidade especificado.

Remova os separadores que precedem minutos e segundos

O seu aplicativo pode chamar GetTimeFormat ou GetTimeFormatEx com TIME_NOMINUTESORSECONDS ou TIME_NOSECONDS para remover os separadores que seguem os elementos de minutos e/ou segundos.

Usar o formato de tempo de 24 horas

Se a sua aplicação suportar o formato horário de 24 horas, ela poderá chamar GetTimeFormat ou GetTimeFormatEx com TIME_FORCE24HOURFORMAT. A menos que o sinalizador TIME_NOTIMEMARKER esteja definido, a função exibe qualquer marcador de tempo existente.

Recuperar informações de data

Uma aplicação pode recuperar strings para qualquer data num formato apropriado para a localidade atual usando as funções GetDateFormat e GetDateFormatEx. Cada uma das funções verifica cada um dos valores de data ano, mês, dia, e dia da semana em uma estrutura deSYSTEMTIME válida, ignorando as partes referentes ao tempo da estrutura. O nome do dia, o nome do dia abreviado, o nome do mês e o nome do mês abreviado são todos localizados com base no identificador de localidade. Se o dia da semana estiver incorreto, a função usará o valor correto e não retornará nenhum erro. Se qualquer um dos outros valores de data estiver fora do intervalo correto, a função falhará com o código ERROR_INVALID_PARAMETER. A função não retorna erros para uma cadeia de caracteres de formato incorreto, mas simplesmente forma a melhor cadeia de caracteres de data possível.

Se a aplicação exigir o formato de data para um calendário específico, deve usar GetCalendarInfo ou GetCalendarInfoEx, passando o identificador de calendárioapropriado. Para retornar todos os formatos de data para um calendário específico, o aplicativo pode usar EnumCalendarInfoEx, EnumCalendarInfoExEx, EnumDateFormatsExou EnumDateFormatsExEx.

Especificar um calendário alternativo

A aplicação pode chamar GetDateFormat ou GetDateFormatEx com o sinalizador DATE_USE_ALT_CALENDAR para usar o formato padrão para o calendário alternativo especificado. Se não houver um formato padrão para o calendário alternativo, a função utiliza as configurações personalizadas do usuário.

Para obter o formato de data para um calendário alternativo, o aplicativo pode usar GetLocaleInfo ou GetLocaleInfoEx com a constante LOCALE_IOPTIONALCALENDAR.

Especificar o tipo de data

Se o aplicativo quiser usar o formato de data abreviada, ele especifica DATE_SHORTDATE na chamada para GetDateFormat ou GetDateFormatEx. Um formato de data longa pode ser obtido especificando DATE_LONGDATE na chamada de função. Se nenhum sinalizador for especificado e o lpFormat estiver definido como NULL , a função usará DATE_SHORTDATE como padrão.

Para obter o formato de data curta e longa para o calendário do locale padrão, a aplicação deve usar a função GetLocaleInfo ou GetLocaleInfoEx com a constante LOCALE_SSHORTDATE ou LOCALE_SLONGDATE.

Especifique a imagem do formato de data

O aplicativo pode especificar uma imagem de formato de data que GetDateFormat ou GetDateFormatEx usa para formar a cadeia de caracteres de data. Se o formato de data para a localidade especificada for necessário, o aplicativo poderá chamar a função com lpFormat definido como NULL. Se o parâmetro não estiver definido como NULL , a função usará a localidade somente para informações não especificadas na cadeia de caracteres de imagem de formato, por exemplo, os nomes de dia e mês para a localidade.

O aplicativo pode colocar qualquer texto que deve permanecer em sua forma exata entre aspas simples. Uma única aspa também pode ser usada como um caractere de escape para permitir que a própria marca seja exibida na cadeia de caracteres de data. No entanto, a sequência de escape deve ser colocada entre duas aspas simples. Por exemplo, para exibir a data como "maio '93", a string de formato é: "MMMM ''''yy ".

Obter informações sobre a duração

Windows Vista e versões posteriores: As funções GetDurationFormat e GetDurationFormatEx estão disponíveis para obter formatos de duração para localidades, incluindo localidades personalizadas. Para obter o formato de duração padrão para uma localidade, o aplicativo deve usar o GetLocaleInfo ou função GetLocaleInfoEx com a constante LOCALE_SDURATION.

Usando Suporte de Idioma Nacional

Hora e Data

Usando dados persistentes de localização