2016-02-15 19 views
0

我正在練習Swift,試驗Dates
我做了一個顯示當前日期的應用程序,然後通過將它們插入到NSCalendar組件中來添加日期。NSDate和UIDatepicker Swift

所有這一切都很好,通過增加一天我得到的第二天。 我的問題是,我有一個UIDatePicker只顯示時間。我試圖按小時和分鐘插入給定的數據,但是我將這些數字添加到未來日期,因爲它保持與當前日期相同的小時和分鐘。

所以我的問題是:

  • 是否有一種方式來獲得當前的日期,然後莫名其妙地改變它的小時和分鐘值設置爲0?
  • 是否可以將未來時間的小時和分鐘值替換爲通過UIDatePicker提供的值?

我在這裏想要完成的是能夠將未來的事件添加到日曆中,但我希望在未來的日期與未來的日期相同,添加事件。

歡迎任何提示。

+1

您可以使用NSCalendar方法dateBySettingHour並設定所需的時間,或者如果你想一天的第一次,您可以使用startOfDayForDate。請記住,它不一定是12am –

回答

1

使用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上設置小時,沒有問題。只有在打印日期時纔會顯示差異,而日曆會記錄正確的小時數。 –