文字列を日付に変換するときに null 値を取得する理由を誰かが説明してくれるかもしれません。それはすべて正しいように見えますが、明らかに何かが欠けています。
背景:
この iPad アプリはさまざまな国で使用されるため、日付を計算して、ユーザーが最後にログインしてから 90 日が経過したかどうかを確認する必要があります。
DateLastIn フィールドが TEXT に設定された SQLite データベースがあります。
私のオブジェクトには、NSDate として設定された DateLastIn プロパティがあります
私のレコードオブジェクトを設定するとき、私はそのように NSDateFormatter を設定しました..
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; // SQLite default date format
次に、DateLastIn を読み込みます (SQLite の FMDB ラッパーを使用)。
// test SQLite as String
NSString *testDate = [results stringForColumn:@"DateLastIn"];
NSLog(@"DateLastIn straight from DB (string) shows %@", testDate);
結果: DB (文字列) からの直接の DateLastIn は 2012-04-23 18:20:51 を示します
これまでのところ、すべて順調です。次に、これを NSDate オブジェクトに変換するテストを行います。
NSDate *aDate = [[NSDate alloc] init];
aDate = [formatter dateFromString:testDate];
NSLog(@"Using formmater on string date results in: %@", aDate);
結果: 文字列日付でフォーマッターを使用すると、次のようになります: (null)
私はSQLiteでDATETIMEを試しました.NSDateの代わりにオブジェクトでNSStringを使用しようとしましたが、円を描いているようです.
どんな助けでも大歓迎です。