NSDateFormatter produkujący (null) SQLite i iOS 5.1
Może ktoś może pomóc wyjaśnić, dlaczego otrzymuję wartość null podczas konwersji łańcucha znaków na datę. Wszystko wygląda dobrze, ale oczywiście czegoś tu brakuje.
Jakieś tło:
Ta aplikacja na iPada będzie używana w różnych krajach i będę musiał wykonać obliczenia w dniu, aby sprawdzić, czy minęło 90 dni od ostatniego zalogowania użytkownika.
Mam bazę danych SQLite z polem DateLastIn ustawionym jako TEKST
Mój obiekt ma właściwość DateLastIn ustawioną jako NSDate
Wypełniając mój obiekt rekordu, ustawiłem NSDateFormatter jako taki ..
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; // SQLite default date format
Następnie czytam w DateLastIn (przy użyciu opakowania FMDB dla SQLite).
// test SQLite as String
NSString *testDate = [results stringForColumn:@"DateLastIn"];
NSLog(@"DateLastIn straight from DB (string) shows %@", testDate);
Wynik:DateLastIn prosto z DB (string) pokazuje 2012-04-23 18:20:51
Jak dotąd wszystko jest dobrze. Następnie testuję konwersję tego na obiekt NSDate, np
NSDate *aDate = [[NSDate alloc] init];
aDate = [formatter dateFromString:testDate];
NSLog(@"Using formmater on string date results in: %@", aDate);
Wynik:Używanie formmatera na dacie łańcucha powoduje: (null)
Próbowałem DATETIME w SQLite, próbowałem użyć NSString w moim obiekcie zamiast NSDate i wydaje mi się, że krążę w kółko.
Każda pomoc bardzo doceniana.