NSDateのinitWithTimeIntervalSince1970をswift版での呼び出しは、init(timeIntervalSince1970 seconds: NSTimeInterval)
2014/11/24
swift
swiftです。
objective-cと微妙に違うんですね。というか、結構違う!?
developerのレファレンスの見方もだんだんわかってきたのですが、swiftとobjective-cの両方あることに気がつきました。
たとえば、objective-c版には、NSDateのinitWithTimeIntervalSince1970がありますが、これ、swift版にはないんですよね。
ないというのは正しくなくて、対応する呼び出しは
わかればなんでもないんですけど。
以下コード
いろいろやってるコードにみえるけど、現在時間の求め方を、CFAbsoluteTimeGetCurrentを使ってしまってるので、kCFAbsoluteTimeIntervalSince1970定数を時間を使って現在時間にしているだけ。
あとprintlnで表示で時間がずれているようにみえしまってるので、わざわざロケールの設定して、フォーマットの設定している(この辺り面倒だなー)
参考
iPhoneアプリ開発: UNIX時間、エポックからのミリ秒の取得 | Passions, Skills, Market
Swiftで現在日時を取得し、様々なスタイルで出力する方法 - Qiita
Swiftで現在日時を取得し、独自のフォーマットで出力する方法 - Qiita
ないというのは正しくなくて、対応する呼び出しは
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
: