strftime, wcsftime, _strftime_l, _wcsftime_l
Formatieren Sie eine Zeitzeichenfolge.
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
);
Parameter
strDest
Ausgabezeichenfolge.maxsize
Größe des Puffers strDest, gemessen in Zeichen (char oder wchart_t).format
Formatsteuerzeichenfolge.timeptr
tm Datenstruktur.locale
Das zu verwendende Gebietsschema.
Rückgabewert
strftime gibt die Anzahl von Zeichen zurück, die in strDest abgelegt werden und wcsftime gibt die entsprechende Anzahl der Breitzeichen zurück.
Wenn die Gesamtanzahl der Zeichen, einschließlich das abschließende NULL-Zeichen, mehr als ist, geben maxsize, strftime und wcsftime 0 zurück und der Inhalt von strDest ist unbestimmt.
Die Anzahl der Zeichen in strDest entspricht der Anzahl von Literalzeichen in format sowie sämtliche Zeichen, die möglicherweise über format Formatierungscodes hinzugefügt werden. Das abschließende NULL-Zeichen eine Zeichenfolge ist jedoch im Rückgabewert gezählt.
Hinweise
Die Funktionen strftime und wcsftime formatieren den Zeitwert tm in timeptr entsprechend dem angegebenen format-Argument und Ergebnisse im Puffer strDest*.* Auf höchster maxsize werden Zeichen in der Zeichenfolge angeordnet. Eine Beschreibung der Felder in der timeptr-Struktur, finden Sie unter asctime. wcsftime ist die Breitzeichenentsprechung von strftime; die ZeichenfolgeZeigerargumentpunkte in eine Zeichenfolge mit Breitzeichen. Anderenfalls verhalten sich diese Funktionen identisch.
Hinweis
In Versionen vor Visual C++ 2005, wurde die Dokumentation jeweils format als Parameter von wcsftime, der Datentyp const wchar_t * lassen, aber die tatsächliche Implementierung des Datentyps format war const char *.Die Implementierung des Datentyps format wurde aktualisiert, um die vorherige aktuelle und Dokumentation h. const wchar_t * an.
Diese Funktion überprüft ihre Parameter. Wenn strDest, format oder timeptr ein NULL-Zeiger ist, oder wenn die Datenstruktur tm, die von timeptr behandelt wird, nicht gültig ist (beispielsweise, wenn es aus Bereichswerten für die Zeit oder das Datum out enthält) oder die Zeichenfolge format ein ungültiger Formatierungscode enthält, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt die Funktion 0 zurück und stellt errno auf EINVAL ein.
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
Das format-Argument besteht aus mindestens Codes; wie in printf, werden die Formatierungscodes von einem Prozentzeichen (%) vorangestellt. Zeichen, die nicht mit % beginnen, werden unverändert in das strDest kopiert . Die LC_TIME Kategorie des aktuellen Gebietsschemas beeinflusst die Ausgabeformatierung von strftime. (Weitere Informationen zu LC_TIME, finden Sie unter setlocale.) Die Features ohne das Suffix _l verwenden das gerade angegebene Gebietsschema. Die Versionen dieser Funktionen mit dem Suffix _l sind identisch, allerdings wird das Gebietsschema als Parameter verwenden und die aktuell festgelegten anstelle des Gebietsschemas. Weitere Informationen finden Sie unter Locale.
Die Formatierungscodes für strftime sind nachfolgend aufgeführt:
%a
Abgekürzter Wochentagsname%A
Vollständiger Wochentagsname%b
Abgekürzter Monatsname%B
Vollständiger Monatsname%c
Datums- und Zeitdarstellung entsprechend für Gebietsschema%d
Tag des Monats als Dezimalzahl (01 - 31)%H
24 Stunde im der Stil (00 - 23)%I
12 Stunde in einem -Stunden-Format (01 - 12)%j
Tag des Jahres als Dezimalzahl (001 - 366)%m
Monat als Dezimalzahl (01 - 12)%M
Minute als Dezimalzahl (00 - 59)%p
Aktueller Uhr-/Uhrindikator des Gebietsschemas für 12-Stunden-Format%S
Zweite als Dezimalzahl (00 - 59)%U
Woche des Jahres als Dezimalzahl, mit Sonntag als ersten Tag der Woche (00 - 53)%w
Wochentag als Dezimalzahl (0 - 6; Sonntag ist 0)%W
Woche des Jahres als Dezimalzahl, mit Montag als ersten Tag der Woche (00 - 53)%x
Datumsdarstellung für aktuelle Gebietsschema%X
Zeitdarstellung für aktuelle Gebietsschema%y
Jahr ohne Jahrhundert, als Dezimalzahl (00 - 99)%Y
Jahr mit Jahrhundert, als Dezimalzahl%z, %Z
Jedes der Zeitzonenname oder die Zeitzonenabkürzung, abhängig von Registrierungseinstellungen; keine Zeichen, wenn Zeitzone nicht bekannt ist%%
Prozentzeichen
Wie in der Funktion printf, kann das #-Flag jeden Formatierungscode voran. In diesem Fall wird die Bedeutung des Formatcodes wie folgt geändert.
Formatcode |
Bedeutung |
---|---|
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% |
#-Flag wird ignoriert. |
%#c |
Lange Datums- und Zeitdarstellung, verwenden für aktuelle Gebietsschema. Zum Beispiel: "Am Dienstag, den 14. März 1995, 12:41: 29 ". |
%#x |
Lange Datumsdarstellung, verwenden dem aktuellen Gebietsschema. Zum Beispiel: "Am Dienstag, den 14. März 1995". |
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y |
Entfernen Sie führende Nullen (falls vorhanden). |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h oder> wchar.h <> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h oder> wchar.h <> |
Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
Beispiel
Im Beispiel für time.