2010-11-10 16 views
1

J'ai le code suivant qui est utilisé pour prendre l'heure d'un NSDate et la date actuelle et les combiner en un NSDate. Cependant, les formateurs sont correctement définis, mais ils retournent une date qui n'est même pas proche de celle qu'elle devrait être. Voici le codeNSDateFormatter ne pas renvoyer la date correcte

/* Get the current date and make a formatter to just show the date ONLY */ 
NSDate *currentDate = [NSDate date]; 
NSDateFormatter *curDateFormatter = [[NSDateFormatter alloc] init]; 
[curDateFormatter setDateFormat:@"MM/dd/YYYY"]; 

/* Create a formatter for the time ONLY */ 
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init]; 
[timeFormatter setDateFormat:@"hh:mm"]; 

/* Create a formatter for both date and time */ 
NSDateFormatter *combinedFormatter = [[NSDateFormatter alloc] init]; 
[combinedFormatter setDateFormat:@"MM/dd/YYYY hh:mm"]; 

NSString *combinedDateTime = [NSString stringWithFormat:@"%@ %@", [curDateFormatter stringFromDate:currentDate], [timeFormatter stringFromDate:time]]; 
NSDate *combinedDate = [combinedFormatter dateFromString:combinedDateTime]; 

/* release the formatters */ 
[curDateFormatter release]; 
[timeFormatter release]; 
[combinedFormatter release]; 

return combinedDate; 

Dites-le fait lorsque ce message a été publié, il devrait avoir 11/10/2010 06h47 mais il est comme 27.12.2009 11:45. Est-ce que cela dans le simulateur et l'appareil.

+1

Quel est le temps variable intialized comme? –

+0

Pour la partie année, il devrait être "aaaa" et non "AAAA". – Anna

Répondre

1

Au lieu d'utiliser le combinedDateFormatter, essayez ce qui suit:

NSDate *combinedDate = [NSDate dateWithNaturalLanguageString:combinedDateTime]; 

Cela a bien fonctionné pour moi.

Valeur chaîne combinedDateTime était 09/27/2011 11:55

Valeur pour objet date combinedDate était 2011-09-27 11:55:00 0530