在下面粘貼的代碼中,我試圖記錄一個NSDate。我在這裏做錯了什麼?我如何NSLog NSDate?
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSDate *todaysDate;
todaysDate = [NSDate date];
NSLog(@"Todays date is %@",formatter);
在下面粘貼的代碼中,我試圖記錄一個NSDate。我在這裏做錯了什麼?我如何NSLog NSDate?
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSDate *todaysDate;
todaysDate = [NSDate date];
NSLog(@"Todays date is %@",formatter);
所有你需要做的是:
NSLog(@"Todays date is %@",[formatter stringFromDate:todaysDate]);
你在做什麼錯的是你有沒有做過任何與格式的日期相關聯。所以,你會想要做這樣的事情:
NSLog(@"Todays date is %@", [formatter stringFromDate:todaysDate];
的NSDate
不知道什麼格式(只是日期信息),以及NSDateFormatter
並不真正知道什麼是日期,只是如何將它們格式化。所以你必須使用像-stringFromDate:
這樣的方法來實際設置格式化日期,以便可讀的顯示。
如果你需要的是剛剛看到最新的信息,不需要特定的格式,你不需要格式化日誌日期:
NSLog(@"Todays date is %@", todaysDate);
將罰款給你-description
的NSDate
對象。我不會將它用於顯示給用戶的任何內容(請使用NSDateFormatter
),但如果您只是在調試並需要查看有關NSDate
對象的信息,則此功能非常方便。
完整的示例:
NSDate *today = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSLog(@"%@",[formatter stringFromDate:today]);
[formatter release];
'的NSLog(@ 「的日期%@」,todaysDate);' - 當然的日期將在長格式和UTC時區記錄,所以你需要了解那。要使用格式化程序,您可以執行'NSLog(@「日期爲%@」,[formatter stringFromDate:todaysDate]);'。 –
不相關,但在「YYYY」而不是「YYYY」中使用'yyyy'。詳情請參閱http://stackoverflow.com/questions/3063068/weird-behavior-when-creating-an-nsdate-of-january-the-1st-and-the-2nd。 – Anna