16

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

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

3 回答 3

20

你所要做的就是:

  NSLog(@"Todays date is %@",[formatter stringFromDate:todaysDate]);
于 2013-08-29T21:38:03.950 回答
4

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

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

NSDate格式化一无所知(只是日期信息),并且NSDateFormatter对日期一无所知,只是如何格式化它们。因此,您必须使用诸如-stringFromDate:实际格式化日期之类的方法来进行漂亮的人类可读显示。

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

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

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

于 2013-08-29T21:40:44.423 回答
3

完整示例:

    NSDate *today = [NSDate date];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY-MM-dd"];
    NSLog(@"%@",[formatter stringFromDate:today]);
    [formatter release];
于 2016-09-05T21:44:17.693 回答