2013-08-29 6 views
12

Mit dem unten eingefügten Code versuche ich ein NSDate zu protokollieren. Was mache ich hier falsch?Wie kann ich ein NSDate NSLoggen?

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"YYYY-MM-dd"]; 
NSDate *todaysDate; 
todaysDate = [NSDate date]; 
NSLog(@"Todays date is %@",formatter); 
+2

'NSLog (@ "Das Datum ist% @", todaysDate);' - Natürlich ist das Datum im Langformat und UTC-Zeitzone angemeldet werden, so müssen Sie verstehen, Das. Um einen Formatierer zu verwenden, würden Sie 'NSLog (@" Das Datum ist% @ ", [Formatierer StringFromDatum: TodayDate]);'. –

+1

Nicht verwandt, aber verwenden Sie 'yyyy' für das Jahr nicht' YYYY'. Siehe http://stackoverflow.com/questions/3063068/weird-behavior-when-creating-annsdate-of-january-the-1st-and-the-2nd für Details. – Anna

Antwort

15

Alles, was Sie tun müssen, ist:

NSLog(@"Todays date is %@",[formatter stringFromDate:todaysDate]); 
4

Was Sie falsch zu machen ist, dass Sie haben nichts getan, um das Datum mit dem Formatierer zu verknüpfen. So würden Sie so etwas wie dies tun wollen:

NSLog(@"Todays date is %@", [formatter stringFromDate:todaysDate]; 

Die NSDate weiß nichts über die Formatierung (nur Informationen stammen) und die NSDateFormatter tut wirklich etwas über Termine wissen, nur wie sie zu formatieren. Also müssen Sie Methoden wie -stringFromDate: verwenden, um das Datum für eine ziemlich menschenlesbare Anzeige zu formatieren.

Wenn das, was Sie brauchen, ist nur die aktuellen Informationen zu sehen und nicht ein bestimmtes Format benötigen, können Sie keine Formatierer brauchen ein Datum zu protokollieren:

NSLog(@"Todays date is %@", todaysDate); 

wird funktionieren Sie das geben, -description des Objekts NSDate. Ich würde dies nicht für irgendetwas verwenden, das Sie dem Benutzer anzeigen (verwenden Sie dafür eine NSDateFormatter), aber das ist praktisch, wenn Sie nur Debuggen und Informationen über ein NSDate Objekt benötigen.

1

Komplettes Beispiel:

NSDate *today = [NSDate date]; 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"YYYY-MM-dd"]; 
    NSLog(@"%@",[formatter stringFromDate:today]); 
    [formatter release]; 
Verwandte Themen