J'ai dateString
avec ce format "mm/dd/yyyy '-' HH:mm"
. Je veux extraire la date en chaîne et l'heure en chaîne. J'ai essayé le code suivant, mais ce retour une mauvaise date:Date et heure d'extraction de NSDate - Objectif 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 chaîne: "05/01/2015 - 11:15"
Résultat: Date: 1/1/2015
, temps: 11:15
et comment puis-je conserver ce format de date dd/mm/yyyy
, je veux dire quand le jour est 1
, il montre 01
'MM' pour le mois, sinon sage c'est minutes (comme vous l'avez déjà utilisé). NSNumberFormatter peut utiliser le zéro de début si nécessaire. Ou vous pouvez simplement utiliser un 'NSDateFormatter' depuis la date que vous avez, au lieu d'utiliser' NSDateComponents': '[formatter setDateFormat: @" MM/jj/aaaa "]; dateLabel = [formatter stringFromDate: date]; [formatter setDateFormat: @ "HH: mm"]; hourLabel = [formatter stringFromDate: date]; 'Par le fait que' hourLabel'/'dateLabel' comme' NSString' et non 'UILabel' est un nom de variable var trompeur. – Larme
Vous devriez utiliser 'NSDateFormatter' pour le faire. Mais pour votre intérêt, utilisez '[NSString stringWithFormat: @"% 02d ", [composants jour]]' ferait le travail pour vous, – zcui93
Comment utiliser 'NSDateFormatter' pour obtenir chaque partie dans une chaîne –