Condividi tramite


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Converte un valore di ora in una stringa e lo regola in base alle impostazioni di fuso orario locale. Queste sono versioni di ctime, _ctime64, _wctime, _wctime64 con i miglioramenti alla sicurezza, come descritto in Funzionalità di sicurezza in CRT.

errno_t ctime_s( 
   char* buffer,
   size_t numberOfElements,
   const time_t *time 
);
errno_t _ctime32_s( 
   char* buffer,
   size_t numberOfElements,
   const __time32_t *time 
);
errno_t _ctime64_s( 
   char* buffer,
   size_t numberOfElements,
   const __time64_t *time )
;
errno_t _wctime_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *time 
);
errno_t _wctime32_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *time 
);
errno_t _wctime64_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *time 
);
template <size_t size>
errno_t _ctime32_s( 
   char (&buffer)[size],
   const __time32_t *time 
); // C++ only
template <size_t size>
errno_t _ctime64_s( 
   char (&buffer)[size],
   const __time64_t *time
); // C++ only
template <size_t size>
errno_t _wctime32_s( 
   wchar_t (&buffer)[size],
   const __time32_t *time 
); // C++ only
template <size_t size>
errno_t _wctime64_s( 
   wchar_t (&buffer)[size],
   const __time64_t *time 
); // C++ only

Parametri

  • [out] buffer
    Deve essere sufficiente per contenere 26 caratteri. Un puntatore al risultato della stringa di caratteri, o a NULLse:

    • time rappresenta una data precedente alla mezzanotte del 1° gennaio 1970, UTC.

    • Se si utilizza _ctime32_s o _wctime32_s e time rappresenta una data successiva al 19 gennaio 2038, alle ore 03:14:07.

    • Se si utilizza _ctime64_s o _wctime64_s e time rappresenta una data successiva al 31 dicembre 3000 alle ore 23:59:59, UTC.

    • Se si utilizza _ctime_s o _wctime_s, queste funzioni sono wrapper alle funzioni precedenti. Vedere la sezione Osservazioni.

  • [in] numberOfElements
    Dimensione del buffer.

  • [in] time
    Puntatore all'ora archiviata.

Valore restituito

Zero se ha esito positivo. Se è presente un errore a causa di un parametro non valido, il gestore del parametro non valido viene richiamato, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, viene restituito un codice di errore. I codici di errore vengono definiti in ERRNO.H; per un elenco di questi errori, vedere errno. I codici di errore generati per ogni condizione di errore vengono mostrati nella tabella seguente.

Condizioni di errore

buffer

numberOfElements

time

Restituzione

Valore in buffer

NULL

any

any

EINVAL

Non modificato

Non NULL (punta alla memoria valida)

0

any

EINVAL

Non modificato

Non NULL

0< dimensione < 26

any

EINVAL

Stringa vuota.

Non NULL

>= 26

NULL

EINVAL

Stringa vuota.

Non NULL

>= 26

< 0

EINVAL

Stringa vuota.

Note

La funzione ctime_s converte un valore di ora archiviato tramite una struttura time_t in una stringa di caratteri. Il valore time in genere viene ottenuto da una chiamata a time, che restituisce il numero di secondi trascorsi dalla mezzanotte (00:00:00) del 1° gennaio 1970, formato UTC (coordinated universal time). La stringa del valore restituito contiene esattamente 26 caratteri e ha forma:

Wed Jan 02 02:03:55 1980\n\0

Viene utilizzato un orario nel formato a 24 ore. Tutti i campi hanno una larghezza costante. Il carattere di nuova riga ('\n') e il carattere null ('\0') occupano le ultime due posizioni della stringa.

Una stringa di caratteri convertita viene regolata in base alle impostazioni del fuso orario locali. Vedere le funzioni time, _ftime, e localtime32_s per informazioni sulla configurazione dell'ora locale, e la funzione _tzset per informazioni sulla definizione dell'ambiente di fuso orario e delle variabili globali.

_wctime32_s e _wctime64_s sono versioni a caratteri wide di _ctime32_s e _ctime64_s; restituiscono un puntatore a una stringa a caratteri wide. In caso contrario, _ctime64_s, _wctime32_s e _wctime64_s si comportano in modo identico a _ctime32_s.

ctime_s è una funzione inline che valuta _ctime64_s e time_t equivale a __time64_t. Se è necessario forzare il compilatore ad interpretare time_t come il vecchio time_t a 32 bit, è possibile definire _USE_32BIT_TIME_T. In questo modo ctime_s valuterà _ctime32_s. Questa operazione non è consigliabile perché l'applicazione fallirebbe dopo il 18 gennaio 2038, e ciò non è consentito su piattaforme a 64 bit.

In C++, l'utilizzo di queste funzioni viene semplificato da overload del modello; gli overload possono dedurre la lunghezza del buffer automaticamente, eliminando la necessità di specificare un argomento per la dimensione. Per ulteriori informazioni, vedere Overload di modelli sicuri.

Mapping di routine di testo generico

Routine TCHAR.H

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tctime_s

ctime_s

ctime_s

_wctime_s

_tctime32_s

_ctime32_s

_ctime32_s

_wctime32_s

_tctime64_s

_ctime64_s

_ctime64_s

_wctime64_s

Requisiti

Routine

Intestazione obbligatoria

ctime_s,

_ctime32_s,

_ctime64_s

<time.h>

_wctime_s,

_wctime32_s,

_wctime64_s

<time.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.

Librerie

Tutte le versioni delle Librerie di runtime C.

Esempio

// crt_wctime_s.c
/* This program gets the current
 * time in time_t form and then uses _wctime_s to
 * display the time in string form.
 */

#include <time.h>
#include <stdio.h>

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

  
   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}

Esempio di output

The time is Fri Apr 25 13:03:39 2003

Equivalente .NET Framework

Vedere anche

Riferimenti

Gestione del tempo

asctime_s, _wasctime_s

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64