我在比较NSDate
时遇到了一些问题,因为它们的格式不同。
从一边我有NSDate
看起来像这样:
2013-12-05T10:12:00.120Z
另一方面,我有另一个看起来像这样的NSDate:
2013-12-01 10:1200 +00000
我的问题是,我怎样才能使第一个NSDate
看起来像第二个?
更重要的是,120Z意味着什么?我想这是时区,但我并不确定。
顺便说一句,是否有任何方法可以格式化NSDate's
并更新时区小时差异的时间?
非常感谢!
编辑:
要获得第一个NSDate,我执行以下操作(我需要获取文件的最后一个打开日期):
MDItemRef item = MDItemCreate(NULL, (__bridge CFStringRef)filePath);
NSDate *date = (NSDate*)CFBridgingRelease(MDItemCopyAttribute(item,
kMDItemLastUsedDate));
要获得第二个NSDate,我会执行以下操作:
NSDate* threeDaysAgo = [NSDate dateWithTimeIntervalSinceNow:-259200];
答案 0 :(得分:0)
将dateStrings转换为NSDate
,然后您可以轻松比较dateObjects。
要将字符串转换为日期,您需要:
比较两个日期:
resultant = [dateOne compare:dateTwo]
resultant
可以是NSOrderedAscending
或NSOrderedSame
或NSOrderedDescending
。
答案 1 :(得分:0)
您对NSDate
的含义存在误解。它根本不是“格式化”,而实际上是一个double
的包装,它是自1970年1月1日凌晨12:00 UTC以来的秒数。您可以直接比较两个日期,看看哪个更早。但是,如果你想比较平等,那就更棘手了。如果你想看看它们是否在一分钟之内,你可以做类似的事情
[date1 timeIntervalSinceDate: date2] < 60.0;