У меня dateString
с этим форматом "mm/dd/yyyy '-' HH:mm"
. Я хочу извлечь дату в строке и в строке в строке. Я пробовал следующий код, но это возвращает неправильную дату:Дата и час извлечения из NSDate - Цель C
- (void) extractDate: (NSString *)dateString intoHour: (NSString *)hourLabel and: (NSString*)dateLabel {
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"mm/dd/yyyy '-' HH:mm"];
NSData *date = [formatter dateFromString:dateString];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSHourCalendarUnit | NSMinuteCalendarUnit fromDate:date];
hourLabel = [NSString stringWithFormat:@"%lu:%lu", [components hour], [components minute]];
dateLabel = [NSString stringWithFormat:@"%lu/%lu/%lu", [components day], [components month], [components year]];
}
Exemple Строка: "05/01/2015 - 11:15"
Результат: Дата: 1/1/2015
, время: 11:15
, а также, как я могу поддерживать этот формат даты dd/mm/yyyy
Я имею в виду, когда день 1
, он показывает 01
'ММ' за месяц, иначе мудрый это минуты (как вы уже использовали его). NSNumberFormatter может использовать при необходимости ноль. Или вы можете просто использовать 'NSDateFormatter' с даты, которую вы получили, вместо использования' NSDateComponents': '[formatter setDateFormat: @" MM/dd/yyyy "]; dateLabel = [formatter stringFromDate: date]; [formatter setDateFormat: @ "HH: mm"]; hourLabel = [formatter stringFromDate: date]; 'Кстати,' hourLabel'/'dateLabel' как' NSString', а не 'UILabel' - довольно вводящее в заблуждение имя var. – Larme
Чтобы сделать это, вы должны использовать 'NSDateFormatter'. Но для вашего интереса используйте '[NSString stringWithFormat: @"% 02d ", [components day]]' выполнит задание для вас, – zcui93
Как использовать 'NSDateFormatter' для получения каждой части строки –