Конвертация формата даты iOS

У меня есть следующая подпрограмма, которая возвращает строку даты и времени и вызывается из другой подпрограммы. Эта часть отлично работает.

- (NSDate * )startDateOfToday
 {
   NSCalendar *calendar = [NSCalendar currentCalendar];
   NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
                                           fromDate:[NSDate date]];
   return [calendar dateFromComponents:components];
 }

Однако, хотя в вызывающем коде, для которого требуется указанная строка даты, мне нужно сгенерировать другое представление даты, которое я могу передать метке, подобной этой:-

self.dayLabel.text = [?????????];

И хотите, чтобы дата отображалась как "Суббота, 7 декабря" или любая другая дата, которую код возвращает.

Как я понимаю, мне нужно использовать NSDateFormatter преобразовать строку даты, предоставленную startDateOfToday на новое значение "сб, 7 декабря".

Я ценю многочисленные посты, связанные с DateFormat, но я пытаюсь понять, как это сделать.

Может ли кто-нибудь помочь мне с:- а) кодом для преобразования; б) кодом, который нужно заменить на dayLabel, как и всякий раз, когда я пытаюсь что-то сделать, он часто показывает ошибку преобразования и т. д.

Спасибо.

1 ответ

Решение

Попробуй это:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setFormatterBehavior:NSDateFormatterBehaviorDefault];
[dateFormatter setDateFormat:@"EEE, MMM d"];

self.dayLabel.text = [dateFormatter stringFromDate:yourDate];
// or self.dayLabel.text = [dateFormatter stringFromDate:[self startDateOfToday]];
Другие вопросы по тегам