NSDateのinitWithTimeIntervalSince1970をswift版での呼び出しは、init(timeIntervalSince1970 seconds: NSTimeInterval) 2014/11/24

swiftです。
objective-cと微妙に違うんですね。というか、結構違う!?

developerのレファレンスの見方もだんだんわかってきたのですが、swiftとobjective-cの両方あることに気がつきました。

たとえば、objective-c版には、NSDateのinitWithTimeIntervalSince1970がありますが、これ、swift版にはないんですよね。

ないというのは正しくなくて、対応する呼び出しは

    convenience init(timeIntervalSince1970 seconds: NSTimeInterval)
となります。

 わかればなんでもないんですけど。

以下コード

let startTime = CFAbsoluteTimeGetCurrent() let dateFormatter = NSDateFormatter() dateFormatter.locale = NSLocale(localeIdentifier: "ja_JP") // ロケールの設定 dateFormatter.timeStyle = .FullStyle dateFormatter.dateStyle = .FullStyle let date = NSDate.init(timeIntervalSince1970:(startTime + kCFAbsoluteTimeIntervalSince1970)) println("called update \(dateFormatter.stringFromDate(date))")


いろいろやってるコードにみえるけど、現在時間の求め方を、CFAbsoluteTimeGetCurrentを使ってしまってるので、kCFAbsoluteTimeIntervalSince1970定数を時間を使って現在時間にしているだけ。

あとprintlnで表示で時間がずれているようにみえしまってるので、わざわざロケールの設定して、フォーマットの設定している(この辺り面倒だなー)

参考
iPhoneアプリ開発: UNIX時間、エポックからのミリ秒の取得 | Passions, Skills, Market
Swiftで現在日時を取得し、様々なスタイルで出力する方法 - Qiita
Swiftで現在日時を取得し、独自のフォーマットで出力する方法 - Qiita




: