Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Converte um valor de hora e corrige para o fuso horário local. Estão disponíveis versões mais seguras destas funções; ver localtime_s, _localtime32_s, _localtime64_s.
Sintaxe
struct tm *localtime( const time_t *sourceTime ); // See note in remarks section about linkage
struct tm *_localtime32( const __time32_t *sourceTime );
struct tm *_localtime64( const __time64_t *sourceTime );
Parâmetros
sourceTime
Ponteiro para o tempo armazenado.
Valor de retorno
Retornar um ponteiro para o resultado da estrutura ou NULL se a data passada para a função for:
Antes da meia-noite, 1º de janeiro de 1970.
Depois de 03:14:07, 19 de janeiro de 2038, UTC (usando
_time32etime32_t).Depois das 23:59:59, 31 de dezembro de 3000, UTC (usando
_time64e__time64_t).
_localtime64, que usa a estrutura, permite que as __time64_t datas sejam expressas até 23:59:59, 31 de dezembro de 3000, tempo universal coordenado (UTC), enquanto _localtime32 representa datas até 23:59:59 18 de janeiro de 2038, UTC.
localtime é uma função embutida que é avaliada como _localtime64, e time_t é equivalente a __time64_t. Se você precisar forçar o compilador a interpretar time_t como o antigo 32-bit time_t, você pode definir _USE_32BIT_TIME_T.
_USE_32BIT_TIME_T causas localtime a avaliar a _localtime32. Não recomendamos _USE_32BIT_TIME_To , porque seu aplicativo pode falhar após 18 de janeiro de 2038 e não é permitido em plataformas de 64 bits.
Os campos do tipo tm de estrutura armazenam os seguintes valores, cada um dos quais é um int:
| Campo | Description |
|---|---|
tm_sec |
Segundos após minuto (0 - 59). |
tm_min |
Minutos após a hora (0 - 59). |
tm_hour |
Horas desde a meia-noite (0 - 23). |
tm_mday |
Dia do mês (1 - 31). |
tm_mon |
Mês (0 - 11; Janeiro = 0). |
tm_year |
Ano (ano corrente menos 1900). |
tm_wday |
Dia da semana (0 - 6; Domingo = 0). |
tm_yday |
Dia do ano (0 - 365; Janeiro 1 = 0). |
tm_isdst |
Valor positivo se o horário de verão estiver em vigor; 0 se o horário de verão não estiver em vigor; valor negativo se o status do horário de verão for desconhecido. |
Se a TZ variável de ambiente estiver definida, a biblioteca de tempo de execução C assumirá regras apropriadas aos Estados Unidos para implementar o cálculo do horário de verão (DST).
Observações
A localtime função converte um tempo armazenado como um time_t valor e armazena o resultado em uma estrutura do tipo tm. O long valor sourceTime representa os segundos decorridos desde a meia-noite (00:00:00), 1 de janeiro de 1970, UTC. Este valor é frequentemente obtido a partir da time função.
As versões de 32 bits e 64 bits do gmtime, mktime, mkgmtimee localtime todas usam uma única tm estrutura por thread para a conversão. Cada chamada para uma dessas rotinas destrói o resultado da chamada anterior.
localtime Corrige o fuso horário local se o usuário primeiro definir a variável TZde ambiente global . Quando TZ é definido, três outras variáveis de ambiente (_timezone, _daylight, e _tzname) também são definidas automaticamente. Se a TZ variável não estiver definida, localtime tente usar as informações de fuso horário especificadas no aplicativo Data/Hora no Painel de Controle. Se essas informações não puderem ser obtidas, PST8PDT, que significa o fuso horário do Pacífico, será usado por padrão. Consulte _tzset para obter uma descrição dessas variáveis.
TZ é uma extensão da Microsoft e não faz parte da definição padrão ANSI de localtime.
Observação
O ambiente de destino deve tentar determinar se o horário de verão está em vigor.
Estas funções validam os seus parâmetros. Se sourceTime for um ponteiro nulo, ou se o sourceTime valor for negativo, essas funções invocarão um manipulador de parâmetros inválido, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, as funções retornarão NULL e serão definidas errno como EINVAL.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Observação
Quando você usa o Windows SDK versão 10.0.26100.6901 e Visual Studio 2026 ou posterior juntos, localtime não é mais static inline (ligação interna). Em vez disso, é inline (ligação externa).
Para retornar ao comportamento anterior, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 antes de incluir quaisquer cabeçalhos CRT. Por padrão, _STATIC_INLINE_UCRT_FUNCTIONS é definido como 0.
Essa alteração aumenta a conformidade do UCRT com o padrão C++ e melhora a compatibilidade com módulos C++.
Requerimentos
| Rotina | Cabeçalho C necessário | Cabeçalho C++ necessário |
|---|---|---|
localtime, _localtime32, _localtime64 |
<time.h> |
<ctime> ou <time.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
Example
// crt_localtime.cpp
// compile with: /W3
// This program uses _time64 to get the current time
// and then uses localtime64() to convert this time to a structure
// representing the local time. The program converts the result
// from a 24-hour clock to a 12-hour clock and determines the
// proper extension (AM or PM).
#include <stdio.h>
#include <string.h>
#include <time.h>
int main( void )
{
struct tm *newtime;
char am_pm[] = "AM";
__time64_t long_time;
_time64( &long_time ); // Get time as 64-bit integer.
// Convert to local time.
newtime = _localtime64( &long_time ); // C4996
// Note: _localtime64 deprecated; consider _localetime64_s
if( newtime->tm_hour > 12 ) // Set up extension.
strcpy_s( am_pm, sizeof(am_pm), "PM" );
if( newtime->tm_hour > 12 ) // Convert from 24-hour
newtime->tm_hour -= 12; // to 12-hour clock.
if( newtime->tm_hour == 0 ) // Set hour to 12 if midnight.
newtime->tm_hour = 12;
char buff[30];
asctime_s( buff, sizeof(buff), newtime );
printf( "%.19s %s\n", buff, am_pm );
}
Tue Feb 12 10:05:58 AM
Consulte também
Gestão do tempo
asctime, _wasctime
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime_s, _localtime32_s, _localtime64_s
time, _time32, _time64
_tzset