2

Google カレンダーの日付文字列 (パブリック JSON から解析) を NSDate 形式に変換しようとすると、非常に困難な状況に陥っているようです。

Google の Calendar API からの結果は、次の形式になります。

"2012-06-20T11:00:00.000+01:00"

次のように、これを NSDate としてフォーマットしようとしています。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";
NSDate *gmtDate = [formatter dateFromString:[whenDict objectForKey:@"startTime"]];

しかし、私はnullの結果を取得し続けているので、変換しようとしている結果の正しい [NSDate dateformat] が何であるかを誰かが知っているかどうか疑問に思っていました...

あらゆる種類の dateFormat バリエーションを試しましたが、複数の文字バリエーションを数時間いじった後、正しいものを見つけることができませんでした!

つまり、問題は次の行にあると思います。

formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";

乾杯、

4

1 に答える 1

6

+01:00 は標準タイム ゾーンではないようですので、コロンを削除して +0100 に変更する必要があります ( iPhone NSDateFormatter Timezone Conversionを参照) 。

次のコードを使用できます

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ";
NSString *dataString = @"2012-06-20T11:00:00.000+01:00";
NSMutableString *mutableDate = [dataString mutableCopy];
[mutableDate deleteCharactersInRange:NSMakeRange(mutableDate.length - 3, 1)];

NSDate *gmtDate = [formatter dateFromString:mutableDate];
于 2012-06-19T12:43:46.283 に答える