まずコード:時間を解析iOSのNSDateFormatterができ、適切
NSString* dateTimeString = [NSString stringWithFormat:@"%@%@", [aDictionary objectForKey:@"date"], [aDictionary objectForKey:@"time"]];
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyyMMddHHmm"];
NSDate* dsate = [dateFormatter dateFromString:dateTimeString];
dateTimeString文字列値が "201106242204"
dsdateはそれが示してデバッガでは、不正な値を取得しますがあります:2011-06- 24 19:04:00 +0000
あなたは時間が22ではないことがわかります。私はすでにこれでかなりの時間を無駄にしています。タイムゾーン、ロケールなどを設定しようとしましたが、何も効果がありません。
デバイスのタイムゾーン設定を変更し、日付の時間が変更されているかどうかを確認してください。これは、少なくともこれがタイムゾーンの問題であるかどうかを教えてくれるでしょう。 – pepsi
開発用マックのタイムゾーンがUKに設定されていて、NSDateFormatterによって返された日付に影響しました。だから私はどのようにこの醜さを考慮する必要がありますか? –
私はRyanRの提案を受け取ります。 setFormat文字列でタイムゾーンを指定しない場合は、デフォルトではローカルタイムゾーンに設定されていないようです。ゾーンフォーマットパターンを使用してタイムゾーンを取得することができます:http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns – pepsi