如何获得另一个NSDate当天特定小时的NSDate表示?

时间:2015-05-06 04:01:25

标签: ios swift nsdate

我需要根据另一个NSDate获得一天中特定时段的NSDate。例如,如果我在2015年5月10日有一个代表已知时间的NSDate,我需要能够在2015年5月10日01:00获得NSDate

我如何在Swift中执行此操作?

2 个答案:

答案 0 :(得分:1)

您可以使用NSCalendar从初始NSDateComponents获取NSDate。然后,您可以更改NSDateComponents中的各个字段。最后,使用NSCalendar转换回NSDate

例如:

let now = NSDate()
var components = NSCalendar.currentCalendar().components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay | .CalendarUnitHour | .CalendarUnitMinute, fromDate: now)

println(now)

components.hour = 1
components.minute = 0
components.second = 0

let updated = NSCalendar.currentCalendar().dateFromComponents(components)
println(updated)

答案 1 :(得分:1)

NSCalendar已经有一个名为dateBySettingHour()的方法,允许你这样做:

let inputDate = NSDate()
let resultDate = NSCalendar.currentCalendar().dateBySettingHour(1, minute: 0, second: 0, ofDate: inputDate, options: nil)!