NSDate和UIDatepicker Swift

问题描述:

我正在练习Swift,试验Dates
我做了一个显示当前日期的应用程序,然后通过将它们插入到NSCalendar组件中来添加日期。NSDate和UIDatepicker Swift

所有这一切都很好,通过增加一天我得到的第二天。 我的问题是,我有一个UIDatePicker只显示时间。我试图按小时和分钟插入给定的数据,但是我将这些数字添加到未来日期,因为它保持与当前日期相同的小时和分钟。

所以我的问题是:

  • 是否有一种方式来获得当前的日期,然后莫名其妙地改变它的小时和分钟值设置为0?
  • 是否可以将未来时间的小时和分钟值替换为通过UIDatePicker提供的值?

我在这里想要完成的是能够将未来的事件添加到日历中,但我希望在未来的日期与未来的日期相同,添加事件。

欢迎任何提示。

+1

您可以使用NSCalendar方法dateBySettingHour并设定所需的时间,或者如果你想一天的第一次,您可以使用startOfDayForDate。请记住,它不一定是12am –

使用NSCalendar类:

let date = NSDate() // date with current time 
let calendar = NSCalendar.currentCalendar() 
let date2 = calendar.dateBySettingHour(0, minute: 0, second: 0, ofDate: date, options: []) // date with zero time 
+0

这有点奏效,但@leo说,这不一定是12am,并给我22:00的时间。我必须 让date2 = calendar.dateBySettingHour(** 2 **,分:0,秒:0,日期:日期,选项:[]) 这是有点只对我的timeZone正确和时间更改后中断。 + -1小时(每年2次)。 –

+0

我想,如果我在0上设置小时,没有问题。只有在打印日期时才会显示差异,而日历会记录正确的小时数。 –