与 Swift 2 一起获取明天的约会



我有这个代码,它用这种格式给出了今天的日期M/dd/yy

let dateFormater = NSDateFormatter()
            dateFormater.dateFormat = "M/dd/yy"
            let todayDate = dateFormater.stringFromDate(NSDate())

除了第二天的约会,我怎么能得到同样的东西?

首先,在本例中,您将获得所需日期的NSDate(从现在起一天就是明天):

var oneDayfromNow: Date? {
    Calendar.current.date(byAdding: .day, value: 1, to: Date())
}
print(oneDayfromNow)

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

if let oneDayfromNow {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "M/dd/yy"
    let str = dateFormatter.string(from: oneDayfromNow)
    print(str)
}

这有点复杂,但这都是您需要了解的内容。

为什么困难:你会认为你可以只取NSDate(timeIntervalSinceNow:24*60*60),再加一天。但当你打开夏令时时,那么晚上11:30加上24小时就是两天后的凌晨00:30。当夏令时关闭时,那么凌晨00:30加上24小时可以是同一天的11:30。

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

我最终使用了这段代码来修复它:let dateFormater=NSDateFormatter()

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

最新更新