Condividi tramite


localtime_s, _localtime32_s, _localtime64_s

converte un valore e corregge il fuso orario locale.queste sono versioni di localtime, _localtime32, _localtime64 con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in 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 
);

Parametri

  • _tm
    Puntatore a una struttura di tempo da riempire.

  • time
    Puntatore al tempo archiviato.

Valore restituito

Zero se ha esito positivo.Il valore restituito è un codice di errore se c " è un errore.I codici di errore definiti in Errno.h.per un elenco di questi errori, vedere errno.

condizioni di errore

_tm

time

Valore restituito

Valore in _tm

richiama il gestore non valido di parametro

NULL

qualsiasi

EINVAL

non modificato

non NULL (punta alla memoria valida)

NULL

EINVAL

Tutti i campi impostati su -1

non NULL (punta alla memoria valida)

meno di 0 o maggiore di _MAX__TIME64_T

EINVAL

Tutti i campi impostati su -1

No

Nel caso delle prime due condizioni di errore, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, queste funzioni impostate errno in EINVAL e restituiscono EINVAL.

Note

_localtime32_s la funzione converte un'ora archiviato come time_t stimare e archivia il risultato in una struttura di tipo tm.long valore timer rappresenta i secondi trascorsi dalla mezzanotte (00:00: 00), il 1° gennaio 1970, UTC.Questo valore è in genere ottenuto dal time funzione.

_localtime32_s corregge il fuso orario locale se l'utente innanzitutto imposta la variabile di ambiente globali TZ.quando TZ è impostato, altre tre variabili di ambiente (_timezone, _daylighte _tzname) vengono impostate automaticamente anche.se TZ la variabile non è impostata, localtime32_s tenta di utilizzare le informazioni del fuso orario specificato nell'applicazione ora/data nel Pannello di controllo.Se tali informazioni non possono essere ottenute, PST8PDT, ovvero il fuso orario pacifico, viene utilizzato per impostazione predefinita.vedere _tzset per una descrizione di tali variabili.TZ è un'estensione Microsoft e non una parte della definizione standard ANSI di localtime.

[!NOTA]

L'ambiente di destinazione deve tentare di determinare se l'ora legale è attiva.

_localtime64_s, che utilizza __time64_t la struttura, vengono concesse le date da esprimere su con il 23:59: 59, il 31 dicembre, 3000, formato UTC (UTC), mentre _localtime32_s rappresenta le date con il 03:14: 7 gennaio 19, 2038, UTC.

localtime_s è una funzione inline che restituisce _localtime64_se time_t equivale a __time64_t.Se è necessario che il compilatore per interpretare time_t come il 32 bit obsoleto time_t, è possibile definire _USE_32BIT_TIME_T.Questa operazione provocherà localtime_s per valutare a _localtime32_s.Questa operazione non è consigliabile perché l'applicazione può non riuscire dopo il 19 gennaio 2038 e non è consentita sulle piattaforme a 64 bit.

I campi del tipo di struttura il TM archiviare i valori seguenti, ciascuno dei quali viene int.

  • tm_sec
    Secondi dopo il minuto (da 0 a 59).

  • tm_min
    Rapporto dopo l'ora (da 0 a 59).

  • tm_hour
    Ore dopo la mezzanotte (da 0 a 23).

  • tm_mday
    Giorno del mese (da 1 a 31).

  • tm_mon
    Mese (da 0 a 11; gennaio = 0).

  • tm_year
    Anno (anno corrente meno 1900).

  • tm_wday
    Giorno della settimana (da 0 a 6; domenica = 0).

  • tm_yday
    Giorno dell'anno (da 0 a 365; 1° gennaio = 0).

  • tm_isdst
    Valore positivo se l'ora legale è attivo; 0 se l'ora legale non è attivo; valore negativo se lo stato dell'ora legale è sconosciuto.se TZ la variabile di ambiente è impostata, la libreria di runtime del linguaggio C presuppone le regole appropriate negli Stati Uniti per implementare il calcolo dell'ora (DST) legale.

Requisiti

routine

Intestazione di associazione

localtime_s

<time.h>

_localtime32_s

<time.h>

_localtime64_s

<time.h>

Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.

Esempio

// 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 );
}

Esempio di output

Fri Apr 25 01:19:27 PM

Equivalente .NET Framework

System:: DateTime:: ToLocalTime

Vedere anche

Riferimenti

Gestione di tempo

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