use*_*935 13 nsdateformatter ios swift
我有dateformat字符串,如"2015-03-09".如何从当前日期开始接下来的10天?任何帮助将不胜感激.谢谢提前
thi*_*ift 17
以下是使用内置日期修改方法10天后获取日期的方法.dateByAddingUnit如果需要所有10天(日期),可以通过"value:10"部分循环并添加到数组中.
var tenDaysfromNow: NSDate {
return NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: 10, toDate: NSDate(), options: [])!
}
print(tenDaysfromNow)
Run Code Online (Sandbox Code Playgroud)
而对于Swift3:
var tenDaysfromNow: Date {
return (Calendar.current as NSCalendar).date(byAdding: .day, value: 10, to: Date(), options: [])!
}
Run Code Online (Sandbox Code Playgroud)
您可以使用dateByAddingTimeInterval()方法.
var dateStr = "2015-03-09"
var formatter = NSDateFormatter()
formatter.dateFormat = "YYYY-MM-dd"
var currDate = formatter.dateFromString(dateStr)
for i in 1...10
{
var interval = NSTimeInterval(60 * 60 * 24 * i)
var newDate = currDate?.dateByAddingTimeInterval(interval)
println(newDate)
}
Run Code Online (Sandbox Code Playgroud)
编辑:
正如@Martin R在评论中所提到的,使用NSCalendar类的dateByAddingComponents()会更好:
var calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
var dateComponent = NSDateComponents()
for i in 1...10
{
dateComponent.day = i
var newDate = calendar?.dateByAddingComponents(dateComponent, toDate: currDate!, options:nil)
println(newDate)
}
Run Code Online (Sandbox Code Playgroud)
NSDate 对象有一个函数“dateByAddingTimeInterval()”。这样,您就可以从日期字符串创建 NSDate。然后加上 10 天 = 10*24*60*60 得到接下来 10 天的 NSDate 值
let today : NSDate = ....
let next10days = today.dateByAddingTimeInterval(10*60*60*24); //interval = seconds
//then you convert back to your date string format if you want, by using NSDateFormatter
Run Code Online (Sandbox Code Playgroud)
为了避免夏令时问题(@MartinR):
let cal = NSCalendar(calendarIdentifier: NSGregorianCalendar)
let next10Days = cal.dateByAddingUnit(NSCalendarUnit.DayCalendarUnit, value: 10, toDate: today, options: nil)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19417 次 |
最近记录: |