使用下面粘贴的代码,我正在尝试记录 NSDate。我在这里做错了什么?
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSDate *todaysDate;
todaysDate = [NSDate date];
NSLog(@"Todays date is %@",formatter);
使用下面粘贴的代码,我正在尝试记录 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
为此使用 an),但如果您只是在调试并且需要查看有关NSDate
对象的信息,这很方便。
完整示例:
NSDate *today = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSLog(@"%@",[formatter stringFromDate:today]);
[formatter release];