10

How to split a string in objective-C? I am working on an short application that contains a date picker. I do display date get it from date picker and display it through a label.

My main question is that how can I split the the date in to three separate strings? any one has idea about it?

Thanks

User97693321
  • 3,336
  • 7
  • 45
  • 69
jugnoo99
  • 103
  • 1
  • 1
  • 6
  • possible duplicate of [NSString tokenize in Objective-C](http://stackoverflow.com/questions/259956/nsstring-tokenize-in-objective-c) – Daniel A. White Feb 23 '11 at 18:32

4 Answers4

19

You could use -[NSString componentsSeparatedByString:] or NSScanner to split the string, or use NSCalendar to extract the pieces of the date you're interested in.

Daniel Dickison
  • 21,832
  • 13
  • 69
  • 89
9

Use something like [yourString componentsSeparatedByString:@"/"]. You will get an NSArray of separated strings.

MHC
  • 6,405
  • 2
  • 25
  • 26
2

If you can format date into specific format using NSDateFormatter and then convert NSDate into NSString. You can extract components from date string using componentsSeparatedByString.

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];

You can get array of string by using this method and you can use string tokenizer according to your dateformat.for example "," string tokenizer.

[myDateString componentsSeparatedByString:@","];
User97693321
  • 3,336
  • 7
  • 45
  • 69
0

You can use following code to split the date into separate components:

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;
John
  • 46
  • 2