localtime_s _localtime32_s, _localtime64_s

Converte um time valor e corrige local time zona.Essas são sistema autônomo versões de localTime _localtime32, _localtime64 com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.

errno_t localtime_s(
   struct tm* _tm,
   const time_t *time 
);
errno_t _localtime32_s(
   struct tm* _tm,
   const time32_t *time 
);
errno_t _localtime64_s(
   struct tm* _tm,
   const _time64_t *time 
);

Parâmetros

  • _tm
    Ponteiro para a estrutura de time para ser preenchido.

  • time
    Ponteiro para a time armazenado.

Valor de retorno

Zero se for bem-sucedido.O valor retornado é um código de erro se houver uma falha.Códigos de erro estão definidos no errno.h.Para obter uma lista desses erros, consulte errno.

Condições de erro

_tm

time

Valor de Retorno

Valor em _tm

Chama o manipulador de parâmetro inválido

NULL

any

EINVAL

Não modificado

Sim

Not NULL (points to valid memory)

NULL

EINVAL

Todos os campos conjunto como -1

Sim

Not NULL (points to valid memory)

menor que 0 ou maior que _MAX__TIME64_T

EINVAL

Todos os campos conjunto como -1

Não

No caso de condições de duas erro primeira, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções conjunto errno para EINVAL e retornar EINVAL.

Comentários

The _localtime32_s função converte uma time armazenada sistema autônomo um time_t valor de e armazena o resultado em uma estrutura do tipo tm. The long valor timer representa que os segundos passados desde meia-noite (00: 00: 00), 1 º de janeiro de 1970 UTC. Esse valor geralmente é obtido do time função.

_localtime32_s corrige a hora local zona se o usuário primeiro definir a variável de ambiente global TZ. Quando TZ é conjunto, três outros () variáveis de ambiente_timezone, _daylight, e _tzname) são automaticamente conjunto também. Se o TZ variável não definida, localtime32_s tenta usar as informações de fuso horário especificadas no aplicativo de data/time no painel de controle. Se não é possível obter essa informação, PST8PDT, o que significa o fuso horário do Pacífico, será usado por padrão.See _tzset para obter uma descrição dessas variáveis.TZ é uma extensão da Microsoft e não faz parte da definição do padrão ANSI de localtime.

Observação:

O ambiente de destino deve tentar determinar se o horário de verão está em vigor.

_localtime64_s, que usa o __time64_t estruturar, permite que as datas para ser expressa até a 23: 59: 59, 31 de dezembro de 3000, formato time universal coordenado (UTC), enquanto _localtime32_s representa datas até 14: 03: 07 19 de janeiro de 2038, UTC.

In Visual C++ 2005, localtime_s é uma função in-line que é avaliada como _localtime64_s, e time_t é equivalente a __time64_t. If you need to force the compiler to interpret time_t as the old 32-bit time_t, you can define _USE_32BIT_TIME_T.Isso fará com que localtime_sa ser avaliada como _localtime32_s. Isso não é recomendado porque seu aplicativo pode falhar após 19 de janeiro de 2038, e não é permitido em plataformas de 64 bit.

Os campos da estrutura digite TM armazenar os valores a seguir, cada um dos quais é um int.

  • tm_sec
    Segundos após minuto (0 – 59).

  • tm_min
    Minutos após hora (0 – 59).

  • tm_hour
    Horas após 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 – 1 º de janeiro; 365 = 0).

  • tm_isdst
    Valor positivo se verão time está em vigor; 0 se verão time é não negativa em vigor; valor se status do verão time é desconhecido.Se o TZ variável de ambiente é conjunto, a biblioteca de time de execução C assume regras apropriadas para o Brasil para implementar o cálculo do horário de verão (DST).

Requisitos

Rotina

Cabeçalho necessário

localtime_s

<time.h>

_localtime32_s

<time.h>

_localtime64_s

<time.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Exemplo

// crt_localtime_s.c
/* This program uses _time64 to get the current time 
 * and then uses _localtime64_s() 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;
        char timebuf[26];
        errno_t err;

        // Get time as 64-bit integer.
        _time64( &long_time ); 
        // Convert to local time.
        err = _localtime64_s( &newtime, &long_time ); 
        if (err)
        {
            printf("Invalid argument to _localtime64_s.");
            exit(1);
        }
        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;

        // Convert to an ASCII representation. 
        err = asctime_s(timebuf, 26, &newtime);
        if (err)
        {
           printf("Invalid argument to asctime_s.");
           exit(1);
        }
        printf( "%.19s %s\n", timebuf, am_pm );
}

Saída de exemplo

Fri Apr 25 01:19:27 PM

Equivalente do NET Framework

sistema::DateTime::ToLocalTime

Consulte também

Referência

Gerenciamento de time

asctime_s, _wasctime_s

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime _ftime32, _ftime64

_gmtime_s _gmtime32_s, _gmtime64_s

localTime _localtime32, _localtime64

time, _time32, _time64

_tzset