使用Swift 2获取明天的约会

时间:2016-03-30 18:13:18

标签: ios swift nsdate

我有这个代码,它在今天的格式M / dd / yy

中给出了今天的日期
let dateFormater = NSDateFormatter()
            dateFormater.dateFormat = "M/dd/yy"
            let todayDate = dateFormater.stringFromDate(NSDate())

我怎么能得到同样的东西,但第二天的日期好吗?

3 个答案:

答案 0 :(得分:12)

首先,在这个例子中(从现在开始的一天是明天),您将获得所需日期的NSDate:

var oneDayfromNow: NSDate {
    return NSCalendar.currentCalendar().dateByAddingUnit(.Day, 
    value: 1, toDate: NSDate(), options: [])!
}

print(oneDayfromNow)

然后将其转换为格式为字符串(您的情况为M / dd / yy):

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "M/dd/yy"
let str = dateFormatter.stringFromDate(oneDayfromNow)
print(str)

答案 1 :(得分:3)

这有点复杂,但无论如何,这都是你需要知道的。

为什么这很困难:你会认为你可以采取NSDate(timeIntervalSinceNow:24 * 60 * 60),现在增加一天。但是当你开启夏令时时,那么晚上11:30加上24小时是两天后的00:30。当夏令时关闭时,上午00:30加24小时可以在同一天的晚上11:30。

因此,您需要创建一个NSCalendar对象,将NSDate()转换为组件,将一天添加到组件中,转换回NSDate(所有这些都在第二天为您提供相同的时间,处理所有特殊情况),然后像现在一样格式化结果。

答案 2 :(得分:-2)

我终于使用此代码来修复它: let dateFormater = NSDateFormatter()

dateFormater.dateFormat = "M/dd/yy"
let todayDate = dateFormater.stringFromDate(NSDate().dateByAddingTimeInterval(24 * 60 * 60))