下面粘贴的代码,我正在尝试记录NSDate。我在这里做错了什么?
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSDate *todaysDate;
todaysDate = [NSDate date];
NSLog(@"Todays date is %@",formatter);
答案 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];