粗野な JSON 文字列の日付を変換する際に問題があります。
"created_at" = "2012-12-22T21:39:22Z";
NSDateに。
そのための私の現在のカテゴリは次のとおりです。
- (NSDate*)dateWithJSONString
{
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[dateFormatter setCalendar:[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:self];
return date;
}
問題は、これが私のケースの 95% で機能することですが、カスタム国際設定と組み合わせた日付と時刻の設定で 24 時間ではなく AM/PM を使用するユーザーがいる場合、日付は json 文字列から作成されません。
このディスカッションを読みましたが、海外のすべてのユーザーと設定で作業するための良い方法が見つかりません。
たとえば、これを追加しました:
[dateFormatter setLocale:[NSLocale currentLocale]];
しかし、それは何も変わりませんでした。iPhone を 24 時間ではなく AM/PM に設定すると、NSDate が作成されません。
AM/PM NSDate スキーマ: 2013-01-21 07:12:43 AM +0000
24H NSDate スキーマ: 2013-01-21 07:12:43 +0000
私は何を取りこぼしたか ?日付形式で更新するものはありますか?