在我的应用程序中,我需要分别获取小时和分钟:
NSString *currentHour=[string1 substringWithRange: NSMakeRange(0,2)]; int currentHourInNumber=[currentHour intValue];
考虑string1包含11:59:13 AM来自日期选择器的内容。
string1
11:59:13 AM
在这里,如果我使用上面的代码,如果它大于 9,则可以获取小时。否则我需要更改NSMakeRange(0,1)以获取 1 到 9 之间的小时。
NSMakeRange(0,1)
有什么方法可以获取小时、分钟等?
在此先感谢,请提供我的示例代码。
使用NSDateFormatter转换string1为NSDate,然后获取所需的NSDateComponents:
NSDate
Obj-C:
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];
Swift 1 and 2:
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
Swift 3:
let dateFormatter = DateFormatter() dateFormatter.dateFormat = "Your date Format" let date = dateFormatter.date(from: string1) let calendar = Calendar.current let comp = calendar.dateComponents([.hour, .minute], from: date) let hour = comp.hour let minute = comp.minute
有关日期格式的更多信息,请参见官方 unicode 网站