【Swift】現在から〇〇時間後のDateを取得する
本日も初学者向けの内容で、現在から〇〇時間後や〇〇日前の Date
を取得する方法を紹介したいと思います。
結論
下記のように Calendar
のインスタンスメソッド date(byAdding:to:options:)
で DateComponents
に .hour
を、value
に 1
を追加することで 1時間後 の Date
を取得することができます。なお、戻り値として返ってくる Date
はオプショナルになります。
let now = Date() let hourLater = Calendar.current.date(byAdding: .hour, value: 1, to: now) // 1時間後
次に現在から2日後の Date
を取得してみます。同様に DateComponents
に時間の単位を value
に時間差を指定することで取得できます。
let now = Date() let twoDaysLater = Calendar.current.date(byAdding: .day, value: 2, to: now) // 2日後
また、過去の Date
を取得する場合には、value
に負の数を指定します。下記が現在から5時間前の Date
を取得するサンプルになります。
let now = Date() let fiveHoursAgo = Calendar.current.date(byAdding: .hour, value: -5, to: now) // 5時間前