web-dev-qa-db-ja.com

Swiftで日付を整数に変換

古いSwiftへの2つの答えSwift 3. 私の答えこの質問 しかし、質問はNSDateではなくDateを明確に要求するため、更新するのは簡単ではありません。そのため、回答を更新できる新しいバージョンの質問を作成しています。

質問

このようなDateインスタンスで開始する場合

let someDate = Date()

それをどのように整数に変換しますか?

関連するが異なる

これらの質問はさまざまなことを求めています。

14
Suragch

DateからInt

// using current date and time as an example
let someDate = Date()

// convert Date to TimeInterval (typealias for Double)
let timeInterval = someDate.timeIntervalSince1970

// convert to Integer
let myInt = Int(timeInterval)

DoubleからIntへの変換を行うと、ミリ秒が失われます。ミリ秒が必要な場合は、Intに変換する前に1000倍してください。

IntからDate

完全を期すために逆を含む。

// convert Int to Double
let timeInterval = Double(myInt)

// create NSDate from Double (NSTimeInterval)
let myNSDate = Date(timeIntervalSince1970: timeInterval)

一貫性があれば、timeIntervalSince1970の代わりにtimeIntervalSinceReferenceDateを使用することもできます。これは、時間間隔が秒単位であることを前提としています。 Javaはミリ秒を使用します。

注意

  • 古いSwift 2 NSDateを含む構文については、 この回答 を参照してください。
68
Suragch