strftime, wcsftime, _strftime_l, _wcsftime_l
Formattazione di una stringa dell' ora.
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr
);
size_t _strftime_l(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr,
_locale_t locale
);
size_t wcsftime(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr
);
size_t _wcsftime_l(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr,
_locale_t locale
);
Parametri
strDest
stringa di output.maxsize
Dimensione del buffer di strDest , misurata nei caratteri (char o wchart_t).format
stringa del Formato-controllo.timeptr
struttura dei dati ditm .locale
le impostazioni locali da utilizzare.
Valore restituito
strftime restituisce il numero di caratteri posizionato in strDest e wcsftime restituisce il numero corrispondente i caratteri di tipo " wide ".
Se il numero totale di caratteri, inclusi null di terminazione, è più di maxsize, sia strftime che wcsftime restituisce 0 e il contenuto di strDest è indeterminato.
Il numero di caratteri in strDest è uguale al numero di caratteri letterali in format nonché di tutti i caratteri che possono essere aggiunti a format tramite i codici di formattazione.Null di terminazione di una stringa non è incluso il valore restituito.
Note
Le funzioni di wcsftime e di strftime al valore di tm in timeptr come l'argomento fornito di format e archiviano il risultato nel buffer strDest*.* A il massimo, i caratteri di maxsize vengono inseriti nella stringa.Per una descrizione dei campi della struttura di timeptr , vedere asctime.wcsftime è l'equivalente a caratteri estesi di strftime; i punti di argomenti del puntatore di stringa a una stringa di caratteri estesi.Queste funzioni si comportano in modo identico in caso contrario.
[!NOTA]
In le versioni precedenti a Visual C++ 2005, la documentazione viene descritto il parametro di format di wcsftime come dotata del tipo di dati const wchar_t *, ma dell' implementazione effettiva del tipo di dati di format è const char *.L'implementazione del tipo di dati di formatè stata aggiornata per riflettere la documentazione precedente e corrente, ovvero, const wchar_t *.
Questa funzione convalida dei parametri.Se strDest, format, otimeptr è un puntatore null, o se la struttura dei dati di tm di destinazione di timeptr non è valida (ad esempio, se contiene i valori esterni all' intervallo per l'ora o la data, oppure se la stringa di format contiene un codice di formattazione non valido, il gestore non valido di parametro viene richiamato, come descritto Convalida dei parametriin.Se l'esecuzione è consentita per continuare, la funzione restituisce 0 e imposta errno a EINVAL.
Mapping di routine a testo generico
routine di TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
L'argomento di format è costituito da uno o più codici; come in printf, i codici di formattazione sono preceduti da un segno di percentuale (%).I caratteri che non iniziano con % sono invariato copiato in strDest*.* La categoria di LC_TIME delle impostazioni locali correnti influisce sulla formattazione di output di strftime.(Per ulteriori informazioni su LC_TIME, vedere setlocale). le funzioni senza il suffisso di _l utilizzano le impostazioni locali attualmente impostate.Le versioni di queste funzioni con il suffisso di _l sono identiche tranne per il fatto che accettano impostazioni locali come parametro e utilizzano tale anziché le impostazioni locali attualmente impostate.Per ulteriori informazioni, vedere Impostazioni locali.
I codici di formattazione per strftime vengono elencati di seguito:
%a
Nome abbreviato del giorno della settimana%A
Nome del giorno della settimana%b
Nome abbreviato del mese%B
Nome completo dei mesi%c
Rappresentazione di data e ora adatta alle impostazioni locali%d
Giorno del mese come numero decimale (da 01 a 31)%H
Ora in formato di 24 ore (00 – 23)%I
Ora 12 nel formato ora (da 01 a 12)%j
Giorno dell' anno come numero decimale (da 001 a 366)%m
Mese come numero decimale (da 01 a 12)%M
Minuti come numero decimale (da 00 a 59)%p
Il A.M. /P.M. corrente delle impostazioni locali.indicatore per l'orario in formato 12 ore%S
In secondo luogo come numero decimale (da 00 a 59)%U
Settimana dell' anno come numero decimale, con domenica come primo giorno della settimana (da 00 a 53)%w
Giorno della settimana come numero decimale (da 0 a 6; Domenica corrisponde a 0)%W
Settimana dell' anno come numero decimale, con lunedì come primo giorno della settimana (da 00 a 53)%x
Rappresentazione della data per le impostazioni locali correnti%X
rappresentazione di tempo per le impostazioni locali correnti%y
Anno senza secolo, come numero decimale (da 00 a 99)%Y
Anno con quattro cifre, come numero decimale%z, %Z
Qualsiasi il nome del fuso orario o un'abbreviazione del fuso orario, a seconda delle impostazioni del Registro di sistema, nessun caratteri se il fuso orario è sconosciuto%%
Simbolo di percentuale
Come nella funzione di printf , il flag di # possibile anteporre a tutto il codice di formattazione.In tal caso, il significato del codice di formato viene modificato come segue.
Codice formato |
Significato |
---|---|
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% |
il flag di# viene ignorato. |
%#c |
Lunga e ora la rappresentazione, appropriata per le impostazioni locali correnti.Ad esempio: “Martedì 14 marzo 1995, 12:41: 29". |
%#x |
La rappresentazione di data estesa, è appropriato per le impostazioni locali correnti.Ad esempio: “Martedì 14 marzo 1995„. |
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y |
Rimuovere gli zeri iniziali (se presente). |
Requisiti
routine |
Intestazione di associazione |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h> o <wchar.h> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h> o <wchar.h> |
Per informazioni di compatibilità aggiuntive, vedere compatibilità nell' introduzione.
Esempio
Vedere l'esempio relativo tempo.