Ответ 1
Все, что вам нужно сделать, это:
NSLog(@"Todays date is %@",[formatter stringFromDate:todaysDate]);
С кодом, вставленным ниже, я пытаюсь зарегистрировать 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
), но это удобно, если вы просто отлаживаете и должны видеть информацию об объекте NSDate
.
Полный пример:
NSDate *today = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSLog(@"%@",[formatter stringFromDate:today]);
[formatter release];