Ответ 1
Вы можете использовать -[NSString componentsSeparatedByString:]
или NSScanner
, чтобы разделить строку или использовать NSCalendar
, чтобы извлечь фрагменты интересующей вас даты.
Как разбить строку в objective-C? Я работаю над кратким выражением, которое содержит сборщик дат. Я показываю дату, получаю ее из набора даты и покажу ее через ярлык.
Мой главный вопрос: как я могу разделить дату на три отдельные строки? кто-нибудь имеет представление об этом?
Спасибо
Вы можете использовать -[NSString componentsSeparatedByString:]
или NSScanner
, чтобы разделить строку или использовать NSCalendar
, чтобы извлечь фрагменты интересующей вас даты.
Используйте что-то вроде [yourString componentsSeparatedByString:@"/"]
. Вы получите NSArray разделенных строк.
Если вы можете форматировать дату в конкретном формате с помощью NSDateFormatter, а затем преобразовать NSDate в NSString. Вы можете извлекать компоненты из строки даты с помощью компонентовSeparatedByString.
NSDate *myDate = datePicker.date;//if you are getting date from date picker
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"cccc, MMM d, hh:mm aa"];//you can use any date format also
NSString *myDateString = [dateFormat stringFromDate:myDate];
Вы можете получить массив строк с помощью этого метода, и вы можете использовать строковый токенизатор в соответствии с вашим форматом dateformat.for, например, ",".
[myDateString componentsSeparatedByString:@","];
Вы можете использовать следующий код для разделения даты на отдельные компоненты:
NSDate *inputDate = [NSDate date]; //assign the value selected from date picker
NSCalendar* calendar = [NSCalendar currentCalendar];
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents* componentObj = [calendar components:unitFlags fromDate:inputDate];
NSInteger day = componentObj.day;
NSInteger month = componentObj.month;
NSInteger year = componentObj.year;