NSDateFormatter liefert nil auf iPhone

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSDateFormatter liefert nil auf iPhone

    Hi,

    ich probier grad verzweifelt diesen String "Sat, 31 Jan 2009 06:30:49 +0100" mit einem NSDateFormatter zu parsen. Im Simulator hab ich keine Probleme, aber sobald ich das im Device testen möchte, liefert er mir nil im NSDate... Funktionieren sollte es eigentlich, da andere Datum Struckturen im Simulator und auf dem Device funktionieren:

    Dieses ist ok:

    Quellcode

    1. [inputFormatter setDateFormat:@"YYYY-MM-dd 'at' HH:mm:ss"];
    2. NSDate *formatterDate = [inputFormatter dateFromString:@"1999-07-11 at 10:30:03"];


    Dieses läuft nur im Simulator, im Device liefert es nil:

    Quellcode

    1. [inputFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss Z"];
    2. NSDate *formatterDate = [inputFormatter dateFromString:@"Sat, 31 Jan 2009 06:30:49 +0100"];


    Hab noch relativ wenig Erfahrung mit dem SDK und Objective C... Ich will nicht ausschließen, dass es an mir liegt (-; Bin gespannt ob jemandem dazu was einfällt!

    mfg fabi
  • Ui, das geht ja fix hier... hat nur leider nicht geholfen (-;

    @hns: mit dd hatte ich schon probiert, liefert das gleiche Ergebnis, im Simulator läuft es bestens, auf dem Device bekomm ich nen nil geliefert.

    @MCDan: wenn ich das jetzt richtig verstanden hab:

    -> Systemeinstellungen ->Landeseinstellungen -> Sprache Deutsch, Region Deutsch

    jeweils im Mac und im iPhone... Sollte also passen? Ist mein erster mac, hab den nur zum programmieren gekauft (-;


    Vll. kann ja mal jemand den Quelltext auf seinem System testen?
    Gibt es eine alternative zu dem NSFormatter?

    thx fabi
  • Zwei Stunden Auto waschen kann manchmal echt helfen...

    Der Tipp mit den Landeseinstellungen war doch gut! Hab mit einem NSLocal den formatter auf en_US einstellen müssen und dann parst auch das iPhone die Daten richtig!

    Quellcode

    1. NSLocale *enLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
    2. [inputFormatter setLocale:enLocale];
    3. [inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
    4. NSDate *formatterDate = [inputFormatter dateFromString:@"Sat, 31 Jan 2009 16:00:38 +0100"];

    Warum das aber vorher auch im Simulator schon ohne Problem lief, im Device aber nicht versteh ich nicht... Kommt sowas öfter vor?!

    Gibt es eine elegantere Art den NSDateFormatter auf en_US zu stellen? Oder ist das schon das Optimum?!

    thx fabi
  • Original von faby
    Warum das aber vorher auch im Simulator schon ohne Problem lief, im Device aber nicht versteh ich nicht... Kommt sowas öfter vor?!


    Ich habe gerade mal die Einstellung im Simulator geprüft und dieser steht bei mir auf English und United States. Wird bei Dir also sicherlich auch so sein.
  • jap! Jetzt macht das auch Sinn, hatte natürlich nicht im Simulator nach der Sprache geschaut sondern auf dem mac (-; testweise auf Deutsch gestellt und schon hat man das gleiche Verhalten...

    Danke nochmal, wird bestimmt nicht die letzte Frage bleiben!

    mfg fabi