FQLのtime型データをNSDateで扱うには


FQLで取得したtime型のデータを整形して、iOSで表示させる為の方法。ちなみに、time型はepochtimeです。

開発環境
1. Xcode 4.5.2
2. facebook SDK Ver3.1

調べてわかった事
1. NSDateはinitWithTimeIntervalSince1970を使って初期化する事ができる。これは、double型でepochtimeを引数に指定する事ができる。
2. NSStringにはdoubleValueメソッドがある。

ゆるい予想
とりあえずNSStringにデータを放り込んでしまえば、後は何とかできるのでは?

ということで、考えたのが下の方法。

NSString* date = [[NSString alloc] initWithFormat:@"%@", [[self.data objectAtIndex:indexPath.row] objectForKey:@"created_time"]];
NSDate* starTDateTime = [[NSDate alloc] initWithTimeIntervalSince1970:[date doubleValue]];
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy/MM/dd"];

1行目 : FQLで取得したcreated_timeを引数にして、NSStringオブジェクトを生成。self.dataにはFQLで取得したデータが格納されている。
2行目 : initWithTimeIntervalSince1970でNSDateオブジェクトを生成
3,4行目 : 表示したい書式で後は適時処理。

3行目の後にFQLで取得したデータとNSDateをNSLogで表示させた結果。

FQL 1350908264
NSDate 2012-10-22 12:17:44 +000