我需要根据另一个NSDate
获得一天中特定时段的NSDate
。例如,如果我在2015年5月10日有一个代表已知时间的NSDate
,我需要能够在2015年5月10日01:00获得NSDate
。
我如何在Swift中执行此操作?
答案 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)!