【问题标题】:ios:How to compare 2 NSdates with Different formats?ios:如何比较不同格式的 2 个 NSdate?
【发布时间】:2012-05-10 06:46:58
【问题描述】:

虽然我是新手,但在比较两个不同格式的 NSDate 时遇到了很多问题。

-解决这个问题的最佳方法应该是什么?

1.我尝试将这两个日期转换为一种格式,然后进行比较 还是我应该先知道这两个日期的格式然后去比较

【问题讨论】:

  • 我的一个日期是 Like -2012-05-08 12:01:56 +0000 而另一个日期是 -2011-05-09 10:25:00.627 我想比较这样的日期(上面的只是一个例子,但我还需要处理其他格式)

标签: iphone objective-c nsdate


【解决方案1】:

NSDate 不知道它的格式。日期在内部存储,没有任何格式或区域。

要比较日期,您可以使用compare: 方法。

if([someDate compare:ortherDate] == NSOrderedDescending ){
   // someDate later then otherDate;
}

【讨论】:

  • 所以你基本上是说,我应该比较这两个日期,而不是将这两个日期转换为一种格式。
  • 是的,您应该始终比较日期而不进行转换。 NSDate 对象经过特殊设计,可以更轻松地处理日期,而无需知道日期将如何表示。
【解决方案2】:

格式是什么意思?初始化 NSDate 对象后,您可以直接将其与该类型的任何其他对象进行比较:(假设 date1 的类型为 NSDate

if ([date1 compare:[NSDate date]] == NSOrderedAscending) {
    ...
}

您可以在此处查看参考(查找 compare 方法):https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsdate_Class/Reference/Reference.html

【讨论】:

  • 我的一个日期是 Like -2012-05-08 12:01:56 +0000 而另一个日期是 -2011-05-09 10:25:00.627 我的意思是说这种格式.
  • 正如@rckoenes 已经回答的那样,格式对于比较无关紧要,因为对象的内部值用于执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多