日付インスタンスをオブジェクトNSDateFormatter
に変換するために使用していました。ある時点で、何かがおかしいことに気づきました。チェックを行ったところ、文字列から。に変換すると、1年が経過したように見えました。NSString
NSDate
NSDateFormatter
NSDate
コードは次のようになります。
NSString *dateString = [dictionary objectForKey:@"match_date_time"];
if (dateString) {
// dateString is "2012-10-30 04:30:00"
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
self.date = [formatter dateFromString:dateString];
// self.date ends up 2011-10-30 04:30:00 +0000, yes 2011 not 2012.
}
なぜNSDateFormatter
そんなに惨めに失敗するのか誰かが知っていますか?
ありがとう!