🕌

Swiftで00秒ピッタリのDate型を生成する

2022/01/29に公開

ロジック

  • Date()→DateComponents()に変換する
    • この時year, month, day, hour, minuteだけを指定してsecondsは指定しない
  • 生成したDateComponents()をDate()に変換する
  • 秒数を切り捨てたDate()を得られる

コード

let calender =  Calendar.init(identifier: .gregorian)
let nowDate = Date()

print(nowDate)

// Date -> DateComponentsで秒数以下を切り捨て
let convertedDate = calender.dateComponents([.year,
                                             .month,
					     .day,
					     .hour,
					     .minute],
					    from: nowDate)
	
// DateComponents -> Dateで秒数が切り捨てられた(=00秒ぴったり)のDate作成
 let justTimeDate = calender.date(from: convertedDate) ?? Date()
 
 print(justTimeDate)

結果

2022-01-29 06:59:20 +0000
2022-01-29 06:59:00 +0000

最後に

もっと良い方法があれば教えていただければと思います。

Discussion