UTCのNSDateをローカルタイムゾーンのNSDateにする
べべべべんと勉強中。
こまったときのstackoverflow.com
objective c - iOS: Convert UTC NSDate to local Timezone - Stack Overflow
やり方誰か知らね? と質問してくれている人がいた。
回答は何種類があるが、NSDateにカテゴリするのがかっこよさげなので使わせてもらう。
@implementation NSDate(Utils) -(NSDate *) toLocalTime { NSTimeZone *tz = [NSTimeZone defaultTimeZone]; NSInteger seconds = [tz secondsFromGMTForDate: self]; return [NSDate dateWithTimeInterval: seconds sinceDate: self]; } -(NSDate *) toGlobalTime { NSTimeZone *tz = [NSTimeZone defaultTimeZone]; NSInteger seconds = -[tz secondsFromGMTForDate: self]; return [NSDate dateWithTimeInterval: seconds sinceDate: self]; } @end
理解度20%ぐらいだが、カテゴリってすごい機能にみえる。JavaでいうならStringというクラスの名前のまま新しいメソッドを自分で定義できるようなもんだから、すごい便利と思う反面、もともとあるやつなのかわかんないから混乱する。知識が増えたらなんとなくわかるんだろうけどね。