2010-09-01 3 views
1

J'ai regardé StackOverflow et n'a pas encore trouvé de réponses, si j'ai manqué un poste qui répond à cela, je suis désolé et je serais reconnaissant pour le lien.Conversion de chaîne à NSDate numéro

J'essaye de changer une chaîne "prod.Start" dans un type de NSDate pour la comparaison avec la date d'aujourd'hui. Le code suivant retourne mydate "01/01/1753 00:00:00 -075258"

CODE:

NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
[format setFormatterBehavior:NSDateFormatterBehavior10_4]; 
[format setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 
NSDate *myDate = [format dateFromString: prod.Start]; //prod.Start = 1/1/1753 12:00:00 AM 

Toutes les suggestions/conseils seraient appréciés.

Merci

modifier:

fonctionne maintenant: merci pour toute l'aide. Ce que je pensais était une erreur = 0 était 00 heures heures du matin

J'ai essayé 24:00 et la sortie était « 01/01/1753 12:00:00 -075258 »

Merci d'expliquer aussi le " -075258 "= PST était curieux à ce sujet.

+0

FWIW - le -075258 représente le temps moyen local utilisé avant vers 1884 pour ce qui est maintenant l'heure du Pacifique ... http://home.tiscali.nl/~t876506/TZworld.html#nam –

Répondre

1

Vous êtes sur la bonne voie. Les fonctions de comparaison NSDate ne fonctionnent qu'avec ce format standard, c'est donc la bonne sortie (bien que si mon code ne fonctionne pas, vérifiez la solution de Max). Vous avez maintenant besoin de comparer cela à la date d'aujourd'hui comme si ...

NSDate *todaysDate = [NSDate date]; 
BOOL isToday = [todaysDate isEqualToDate:myDate]; 

Cela devrait vous donner ce que vous cherchez.

+0

merci, theres une comparaison qui demande avant/après la date d'aujourd'hui n'est pas là? – Kevin

0

Vous utilisez une chaîne de format de style 10.4, mais le comportement de formatage par défaut est de style 10.0. Avez-vous vérifié que votre formateur utilise le bon style? Vous pouvez le changer avec –setFormatterBehavior: ou globalement avec +setDefaultFormatterBehavior:.

+0

Je viens d'ajouter: [format setFormatterBehavior: NSDateFormatterBehavior10_4]; J'ai aussi essayé le format par défaut au lieu de 10_4. J'ai toujours la même sortie, est-ce qu'il me manque encore quelque chose? Merci. – Kevin