ala*_*ham 7 date ios swift ios9 swift2
我是快速编程的新手,我还没能成功找到代码,以找出两个日期,数年和数日之间的差异.我尝试了以下代码,但它没有用
let form = NSDateComponentsFormatter()
form.maximumUnitCount = 2
form.unitsStyle = .Full
let s = form.stringFromTimeInterval( date2.timeIntervalSinceReferenceDate - date1.timeIntervalSinceReferenceDate)
Run Code Online (Sandbox Code Playgroud)
输入
Date1 ="12/March/2015"
Date2 ="1/June/2015"
输出:x年y个月z天
请指教
Raj*_*ari 12
我们可以在Swift 2.0中使用这个功能
func yearsBetweenDate(startDate: NSDate, endDate: NSDate) -> Int
{
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Year], fromDate: startDate, toDate: endDate, options: [])
return components.year
}
Run Code Online (Sandbox Code Playgroud)
你可以在这个函数中返回我返回的年份.这将返回两个日期之间的年数.
你可以写几个月,几天等,以便分别找出两个日期之间的差异,分别是几个月和几天.
编辑
Swift 3.0及以上版本
func yearsBetweenDate(startDate: Date, endDate: Date) -> Int {
let calendar = Calendar.current
let components = calendar.dateComponents([.year], from: startDate, to: endDate)
return components.year!
}
Run Code Online (Sandbox Code Playgroud)
如果你需要的差别(年,月,日)数值然后计算NSDateComponents为 2个NSDates之间雨燕天或拉詹的答案.
如果您需要将差异作为(本地化)字符串呈现给用户,那么请使用NSDateComponentsFormatter这样的方法
let form = NSDateComponentsFormatter()
form.maximumUnitCount = 2
form.unitsStyle = .Full
form.allowedUnits = [.Year, .Month, .Day]
let s = form.stringFromDate(date1, toDate: date2)
Run Code Online (Sandbox Code Playgroud)
正如评论中已经提到的那样,计算与日期之间的纯时间间隔的差异无法给出正确的结果,因为大多数关于日期的信息都会丢失.
Swift 3更新:
let form = DateComponentsFormatter()
form.maximumUnitCount = 2
form.unitsStyle = .full
form.allowedUnits = [.year, .month, .day]
let s = form.string(from: date1, to: date2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6523 次 |
| 最近记录: |