我如何NSLog NSDate?

时间:2013-08-29 21:34:14

标签: ios objective-c

下面粘贴的代码,我正在尝试记录NSDate。我在这里做错了什么?

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

3 个答案:

答案 0 :(得分:18)

您所要做的就是:

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

答案 1 :(得分:4)

你做错了是你没有做任何事情来将日期与格式化程序联系起来。所以,你想要做这样的事情:

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

NSDate对格式化(只是日期信息)一无所知,NSDateFormatter对日期一无所知,只知道如何格式化日期。因此,您必须使用-stringFromDate:之类的方法来实际设置日期,以便进行人工可读的显示。

如果您需要的只是查看日期信息而不需要特定格式,则不需要格式化程序来记录日期:

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

可以正常工作,为您提供-description对象的NSDate。我不会将此用于您向用户显示的任何内容(请使用NSDateFormatter),但如果您只是调试并需要查看有关NSDate对象的信息,则这很方便。

答案 2 :(得分:3)

完整示例:

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