首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较NSDate

比较NSDate
EN

Stack Overflow用户
提问于 2014-11-12 14:29:44
回答 3查看 5.5K关注 0票数 3

我想比较一下两个NSDates,但是每一个日期显示都比todaysDate“早”。有什么想法吗?

代码语言:javascript
复制
let compareResult = self.todaysDate.compare(self.date)

if compareResult == NSComparisonResult.OrderedDescending {
println("Today is later than date2")
} else {
println("Future")
}

获得"todaysDate“

代码语言:javascript
复制
let todaysDate = NSDate()
let calendar = NSCalendar.currentCalendar()
    let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitMonth | .CalendarUnitYear | .CalendarUnitDay, fromDate: todaysDate)
let hour = components.hour
let minutes = components.minute
let month = components.month
let year = components.year
let day = components.day
println(todaysDate)

这张印刷品是:

代码语言:javascript
复制
2014-11-12 14:48:48 +0000

“日期”的印刷品是:

代码语言:javascript
复制
2014-10-24 07:24:41 +0000

这是在一个Parse.com服务器上。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2014-11-18 04:35:08

我认为您可能是在向后解释compare的结果。看看这个。每个asserts都通过:

代码语言:javascript
复制
let today = NSDate()
let tomorrow = today.dateByAddingTimeInterval(24 * 60 * 60)
let yesterday = today.dateByAddingTimeInterval(-24 * 60 * 60)

assert(today.compare(tomorrow)  == .OrderedAscending)     // today < tomorrow
assert(today.compare(yesterday) == .OrderedDescending)    // today > yesterday
assert(today.compare(today)     == .OrderedSame)          // today == today
票数 10
EN

Stack Overflow用户

发布于 2015-01-28 08:33:49

如果您想支持==<><=NSDate>=,只需在某个地方声明如下:

代码语言:javascript
复制
public func ==(lhs: NSDate, rhs: NSDate) -> Bool {
    return lhs === rhs || lhs.compare(rhs) == .OrderedSame
}

public func <(lhs: NSDate, rhs: NSDate) -> Bool {
    return lhs.compare(rhs) == .OrderedAscending
}

extension NSDate: Comparable { }

实现==<可以让Comparable推断其他比较运算符。

用法:

代码语言:javascript
复制
let date1 = NSDate()
let date2 = NSDate()

println(date2 > date1) // true
println(date2 < date1) // false
println(date2 == date2) // true
票数 10
EN

Stack Overflow用户

发布于 2014-11-19 06:57:20

尝尝这个!通过将不同的日期分配给strdate,可以检查不同的日期。

代码语言:javascript
复制
    todaysDate = NSDate()
    println(todaysDate)

    var dateformmatter:NSDateFormatter = NSDateFormatter()
    dateformmatter.dateFormat = "yyyy-MM-dd HH:mm:ss";
    let strdate:NSString = "2014-12-12 07:24:41";
    date = dateformmatter.dateFromString(strdate)!;
    println(date)

    let compareResult = todaysDate.compare(date)

    if compareResult == NSComparisonResult.OrderedDescending {
        println("Today is later than date2")
    } else {
        println("Future")
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26889382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档