我如何NSLog的NSDate?

用下面的代码粘贴,我正在尝试login一个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]); 

你做错了什么是你没有做任何事情与格式化程序关联的date。 所以,你会想要做这样的事情:

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

NSDate不知道什么格式(只是date信息), NSDateFormatter真的不知道date的任何事情,只是如何格式化它们。 所以你必须使用像-stringFromDate:这样的方法来实际的格式化date,以便于人类可读的显示。

如果您只需要查看date信息而不需要特定格式,则不需要格式化程序来loggingdate:

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

将工作正常给你的NSDate对象的描述。 我不会使用这个显示给用户的任何东西(使用NSDateFormatter ),但是如果你只是在debugging,并且需要查看关于NSDate对象的信息,这是非常方便的。

完整的例子:

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