日付を指定すると、4:00に日付を取得したいと考えています。前日の日付@ 4am
let date3am = Calendar.current.date(from: DateComponents(year: 2017, month: 7, day: 1, hour: 3, minute: 0, second: 0))!
let date = Calendar.current.date(bySettingHour: 4, minute: 0, second: 0, of:
date3am, direction: .backward)!
date // "Jul 1, 2017, 4:00 AM"
date < date3am // false
なぜdate(bySettingHour)
が後方に行かない:午前3時39分 - これは、午後12時00分のために失敗しますか?
達成しようとしていることは明確ではありません。私はあなたが任意の日付(例えば 'date3am')を持っていて、その日の04:00に日付を取得しようとしていると思いますか? – paulvs
Calendar.current.date(bySettingHour:4、分:0、秒:0、中: date3am、方向:.backward) 'date3am'から4時間を加算または減算しない - *そのようなやり方が必要です。同じ**カレンダー*日を表す新しいDateオブジェクトを新しい** Time **で返します。したがって、 "4月7日の午前4時" *の結果は正しいです。 – DonMag
@DonMag:私は4時間を減算したくない、私は4時に時間を設定したい。しかし、私は次の午前4時に行きたくありませんが、前の時刻に戻る(1日前、0時00分から3時59分まで) –