Dies ist eine alte Version des Dokuments!
strftime ist definiert in der time
, die in C über time.h
, bzw. in C++ über ctime
eingebunden wird.
Erzeugt aus einem Formatstring und einem Zeitpunktsbeschreibung (struct tm) einen Ausgabestring.
#include <time.h> size_t strftime ( char * ptr, size_t maxsize, const char * format, const struct tm * timeptr );
ptr: Zeiger auf das Zielarray, indem der zu erstellende String geschrieben werden soll
maxsize: Größe des Zielarrays, maximale Anzahl der zu schreibenen Zeichen
format: Formatstring, entsprechend wie der String aufgebaut werden soll, siehe Formattabelle
timePtr: tm-Struktur, die den zu druckenden Zeitpunkt beschriebt
Return value: Sofern der String in weniger als die als maxsize
angegebenen Zeichen passt, wird die Anzahl der verwendeten Zeichen (ohne das Nullbyte) zurückgeben. Konnte der String nicht vollständig in das Array geschrieben werden, so wird 0 zurückgegeben.
Der Formatstring darf beliebige Zeichen enthalten. Zeichen, die mit einem % beginnen sind Sonderzeichen und werden entsprechend der folgenden Tabelle ersetzt.
Ein grüner Haken (✔) bei Lokalisiert bedeutet, dass auf einem als deutsch eingestellten Computer ein entsprechend eingedeutschter String erscheinen kann.
sign | Ersatzstring | Beispiel | Lokalisiert |
---|---|---|---|
%a | abgekürzter Wochentagsname | Thu | ✔ |
%A | ausgeschriebener Wochentagsname | Thursday | ✔ |
%b | abgekürzter Monatsname | Aug | ✔ |
%B | ausgeschriebener Monatsname | August | ✔ |
%c | volle Datums- und Zeitrepresentation | Thu Aug 23 14:55:02 2001 | ✔ |
%d | Tag des Monats (01-31) | 23 | ✗ |
%H | Stunde im 24-Stunden-Format (00-23) | 14 | ✗ |
%I | Stunde im 12-Stunden-Format (01-12) | 02 | ✗ |
%j | Tag des Jahres (001-366) | 235 | ✗ |
%m | Monat als Dezimalnummer (01-12) | 08 | ✗ |
%M | Minute (00-59) | 55 | ✗ |
%p | AM oder PM Angabe | PM | ✗ |
%S | Sekunde (00-61) | 02 | ✗ |
%U | Wochennummer mit dem ersten Sonntag als ersten Tag der ersten Woche (00-53) | 33 | ✗ |
%w | Wochentag als Dezimalzahl mit Sonntag als 0 (0-6) | 4 | ✗ |
%W | Wochennummer mit dem ersten Montag als ersten Tag der ersten Woche (00-53) | 34 | ✗ |
%x | Datum | 08/23/01 | ✔ |
%X | Zeit | 14:55:02 | ✔ |
%y | Jahr, zweistellig (00-99) | 01 | ✗ |
%Y | Jahr, vierstellig | 2001 | ✗ |
%Z | Zeitzone oder Abkürzung der Zeitzone | CDT | ✗ |
%% | Prozentzeichen | % | ✗ |
#include <stdio.h> #include <time.h> #include <stdlib.h> int main(void) { time_t timeStamp; struct tm * timeInfo; char buffer[80]; time( &timeStamp ); timeInfo = localtime( &timeStamp ); strftime( buffer, 80, "Es ist nun %H Uhr, %M Minuten.", timeInfo ); puts( buffer ); return 0; }
Ausgabe:
Es ist nun 07 Uhr, 56 Minuten.