2014-06-11 14 views
7

Ich versuche, ein Datum aus einer Zeichenfolge wie "01/01/01" zu drucken und etwas wie "Montag, 1. Januar 2001.Wie drucke ich ein Datum in C?

Ich habe etwas mit dem Mann von ctime gefunden, aber wirklich nicht verstanden wie es zu benutzen.

Jede Hilfe?

Danke,

+0

Teilen Sie, was Sie gefunden, bitte –

+0

Eigentlich so ziemlich nichts nur über mans. Nur verstanden, dass es eine Struktur mit der wir füllen können .. Aber weiß nicht wie. Struct ist "struct tm timep" – Difender

+0

http://www.java2s.com/Code/C/Development/PrintlocalandUTCtime.htm Siehe diesen Link kann es Ihnen helfen. –

Antwort

5

Sie können strptime verwenden, um die Zeichenfolge Datum struct tm

struct tm tm; 
strptime("01/26/12", "%m/%d/%y", &tm); 

zu konvertieren und dann struct tm im entsprechenden Datumsformat drucken mit strftime

char str_date[256]; 
strftime(str_date, sizeof(str_date), "%A, %d %B %Y", &tm); 
printf("%s\n", str_date); 
+0

Funktioniert wirklich gut, vielen Dank! – Difender

4

strftime() macht die Arbeit.

char buffer[256] = ""; 
{ 
    struct tm t = <intialiser here>; 
    strftime(buffer, 256, "%H/%M/%S", &t); 
} 
printf("%s\n", buffer); 
+0

Die Signatur von 'strftime' ist' size_t strftime (Zeichen * s, size_t max, const char * -Format, const struct tm * tm); '. Ihnen fehlt der Parameter 'size_t'. – HAL

+0

Danke, behoben. @HAL – alk

1

Sie suchen wahrscheinlich für strftime