我有这个代码,它在今天的格式M / dd / yy
中给出了今天的日期let dateFormater = NSDateFormatter()
dateFormater.dateFormat = "M/dd/yy"
let todayDate = dateFormater.stringFromDate(NSDate())
我怎么能得到同样的东西,但第二天的日期好吗?
答案 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))