Compartilhar via


Recuperando informações de data e hora

Este tópico inclui instruções para usar as funções NLS em seus aplicativos para recuperar informações de data e hora , bem como dados de duração. Se o aplicativo precisar persistir dados, consulte Usando dados de localidade persistente.

Windows Vista e posterior: As funções discutidas neste tópico podem recuperar dados de localidades 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 caracteres de tempo como "12H34'12''".

Recuperar informações de tempo

Seu aplicativo pode obter cadeias de caracteres a qualquer momento em um formato apropriado para a localidade atual usando as funções GetTimeFormat e GetTimeFormatEx . Qualquer função verifica cada um dos valores de tempo em uma estrutura SYSTEMTIME válida para determinar que ela está dentro do intervalo apropriado de valores, ignorando as partes 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 inválido, mas simplesmente forma a melhor cadeia de caracteres 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 tempo sem executar nenhuma formatação real, o aplicativo pode usar a função GetLocaleInfo ou 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á os separadores anteriores e seguirão o marcador 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.

Remover separadores antes de minutos e segundos

Seu aplicativo pode chamar GetTimeFormat ou GetTimeFormatEx com TIME_NOMINUTESORSECONDS ou TIME_NOSECONDS especificado para remover os separadores após os elementos de minutos e/ou segundos.

Usar formato de tempo de 24 horas

Se o aplicativo estiver dando suporte ao formato de tempo de 24 horas, ele 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

Um aplicativo pode recuperar cadeias de caracteres para qualquer data em um formato apropriado para a localidade atual usando as funções GetDateFormat e GetDateFormatEx . Qualquer função verifica cada um dos valores de data ano, mês, dia e dia da semana em uma estrutura SYSTEMTIME válida, ignorando as partes de 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 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 inválido, mas simplesmente forma a melhor cadeia de caracteres de data possível.

Se o aplicativo exigir o formato de data para um calendário específico, ele deverá usar GetCalendarInfo ou GetCalendarInfoEx, passando o Identificador de Calendário apropriado. Para retornar todos os formatos de data para um calendário específico, o aplicativo pode usar EnumCalendarInfoEx, EnumCalendarInfoExEx, EnumDateFormatsEx ou EnumDateFormatsExEx.

Especificar um calendário alternativo

O aplicativo 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 usará as substituições do usuário.

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

Especificar Tipo de Data

Se o aplicativo quiser usar o formato de data curta, ele especificará 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 de localidade padrão, o aplicativo deve usar a função GetLocaleInfo ou GetLocaleInfoEx com a constante LOCALE_SSHORTDATE ou LOCALE_SLONGDATE .

Especificar a imagem de 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 incluir qualquer texto que deve permanecer em sua forma exata dentro de aspas simples. Uma única aspa também pode ser usada como um caractere de escape para permitir que a marca em si 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 cadeia de caracteres de formato é: "MMMM ''''yy ".

Recuperar informações de duração

Windows Vista e posterior: 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 de uma localidade, o aplicativo deve usar a função GetLocaleInfo ou GetLocaleInfoEx com a constante LOCALE_SDURATION .

Usando o Suporte à Linguagem Nacional

Hora e Data

Usando dados de localidade persistente