RestKitを使用してデータをインポートしてCoreDataにマッピングしようとしています。
これがAPIからのデータです。
active": false,
"date": "2012-09-09",
"desc": "",
"end": "18:30",
"location": "",
"simStatus": "Accepted",
"start": "17:00",
"title": "The title"
これらをCoreDataにマップしようとすると、時間と日付が変更されることがあります。たとえば、Core Dataに保存されている上記のデータは、start = 1970-1-1 23:00、end = 1970-1-1 00:30になりますか?
APIが送信する時間は現地時間であり、APIはアプリがいつどこで使用されているかを認識しています。スポーツイベントを考えてみてください。アウェイゲームがいつどこにあるかを知っています。
これらの時刻と日付をCoreDataに保存する必要があります。これは、APIがそれらを渡す正確な時刻hh:mmです。Core DataまたはRestkitがそれらを変更することを決定した理由がわかりませんか?1970年の部分は、開始と終了に日付がないことを理解していますが、なぜ時間を変更するのですか?
誰かが解決策を知っていますか?
以下は、timeZone、timeZoneなし、local timeZone、UTCタイムゾーンなどで試したRestKitマッピングコードです。en_US_POSIXを使用した場合と使用しない場合も試しました。
NSDateFormatter* timeFormatter = [NSDateFormatter new];
[timeFormatter setDateFormat:@"HH:mm"];
timeFormatter.timeZone = [NSTimeZone localTimeZone];
timeFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDateFormatter* dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
dateFormatter.timeZone = [NSTimeZone localTimeZone];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
gameMapping.dateFormatters = [NSArray arrayWithObjects:dateFormatter, timeFormatter, nil ];
[gameMapping mapKeyPath:@"start" toAttribute:@"start"];
[gameMapping mapKeyPath:@"end" toAttribute:@"end"];
.......