2010-08-24 12 views
2

J'ai cette chaîne ...Puis-je utiliser NSDateFormatter pour convertir cette chaîne de date en NSDate?

2010-08-24T16:00:00-05:00 

et je voudrais extraire la partie du temps de celui-ci (par exemple 16h00) et le convertir en son équivalent de 12 heures (c.-à-16h00) . Je suis en train d'utiliser NSDateFormatter pour ce faire, mais cela ne fonctionne pas ...

NSDateFormatter* dateformatter = [[NSDateFormatter alloc] init]; 
[dateformatter setDateFormat:@"hh:mm a"]; 
NSDate *date1 = [dateformatter dateFromString:[listOfTimes objectAtIndex:0]]; 
[dateformatter release]; 

Puis-je utiliser NSDateFormatter avec ce format de date? Si non, comment puis-je extraire l'heure et la convertir en son équivalent de 12 heures?

Merci!

+0

Veuillez fournir votre code de non-fonctionnement actuel. – raidfive

Répondre

1

Je pense que vous devriez être capable de faire quelque chose comme ce qui suit.

 

    // create the date formatter object 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 
    NSDate* date = [formatter dateFromString:dateString]; 
    // set up the new date format 
    [formatter setDateFormat:@"hh:mm:ss"]; 
    NSString *twelveHourTime = [formatter stringFromDate:date]; 
    [formatter release]; 
 

Mise à jour: Correction du format de chaîne dateFormatter. J'ai eu la ligne ci-dessous, mais le Z semble être inutile. Les fuseaux horaires me bousillent toujours. : -/

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; 
+0

hmmm ... ça n'a pas marché, mais ça m'a l'air bien. la date renvoyée par [formatter dateFromString: dateString] renvoie une chaîne non valide. – beeeefy

+0

La chaîne de format mise à jour devrait fonctionner. –

+0

merci, Jerry, mais toujours non. Je récupère un . par curiosité, avez-vous testé cela et cela fonctionne? Je me demande si je fais quelque chose de mal ailleurs. – beeeefy