mac mac - 5 months ago 39
Objective-C Question

How do I get hour and minutes from NSDate?

In my application I need to get the hour and minute separately:

NSString *currentHour=[string1 substringWithRange: NSMakeRange(0,2)];
int currentHourInNumber=[currentHour intValue];

11:59:13 AM
which is coming from datepicker.

Here if I use above code, it's okay to get hour if it's greater than 9. Else I need to change
to get hour between 1 to 9.

Are there any methods to get the hour, minutes, etc?

Thanks in advance, please provide me sample code.


Use an NSDateFormatter to convert string1 into an NSDate, then get the required NSDateComponents:


NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"<your date format goes here"];
NSDate *date = [dateFormatter dateFromString:string1];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:date];
NSInteger hour = [components hour];
NSInteger minute = [components minute];


let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "Your date Format"
let date = dateFormatter.dateFromString(string1)
let calendar = NSCalendar.currentCalendar()
let comp = calendar.components([.Hour, .Minute], fromDate: date)
let hour = comp.hour
let minute = comp.minute

More about the dateformat is on the official unicode site