Dies ist eine alte Version des Dokuments!


strftime()

strftime ist definiert in der time, die in C über time.h, bzw. in C++ über ctime eingebunden wird.

Funktion

Erzeugt aus einem Formatstring und einem Zeitpunktsbeschreibung (struct tm) einen Ausgabestring.

Signatur

#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.

Formattabelle

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 %

Fehlerquellen

FIXME

Beispiel

#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.

siehe auch