使用Swift向NSDate添加天数/小时
我知道这是一个非常基本的问题,我知道我可能找不到答案,因为我没有提出正确的问题,但是如何更改NSDate值 例如,我有一个使用Swift向NSDate添加天数/小时,swift,nsdate,Swift,Nsdate,我知道这是一个非常基本的问题,我知道我可能找不到答案,因为我没有提出正确的问题,但是如何更改NSDate值 例如,我有一个date属性,它被设置为datePicker的日期,我想创建一个新属性,它是date属性的前一天,另一个是一小时之前 添加和删除天数 为了避免夏令时出现问题,在添加天数时,应使用NSCalendar Swift 3: let tomorrow = Calendar.current.date(byAdding: .day, // updated this params
date
属性,它被设置为datePicker
的日期,我想创建一个新属性,它是date
属性的前一天,另一个是一小时之前 添加和删除天数
为了避免夏令时出现问题,在添加天数时,应使用NSCalendar
Swift 3:
let tomorrow = Calendar.current.date(byAdding:
.day, // updated this params to add hours
value: 1,
to: now)
Swift 2:
let tomorrow = NSCalendar.currentCalendar().dateByAddingUnit(
.Day, // updated this params to add hours
value: 1,
toDate: now,
options: .MatchFirst)
请注意,您不是在对原始实例进行变异(now
),而是在构建一个新实例。实际上,NSDate
类是不可变的
使用
7*24*60*60
作为一天的持续时间是错误的。在夏令时为白天的地区,一天可能有23或25个小时。正确的方法是使用NSCalendar,请参见例如…@MartinR:谢谢。我更新了我的答案。