格式化NSDate

时间:2013-12-05 09:16:20

标签: objective-c nsdate nsdateformatter

我在比较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];

2 个答案:

答案 0 :(得分:0)

将dateStrings转换为NSDate,然后您可以轻松比较dateObjects。

要将字符串转换为日期,您需要:

NSDateFormatter

比较两个日期:

resultant = [dateOne compare:dateTwo]

resultant可以是NSOrderedAscendingNSOrderedSameNSOrderedDescending

答案 1 :(得分:0)

您对NSDate的含义存在误解。它根本不是“格式化”,而实际上是一个double的包装,它是自1970年1月1日凌晨12:00 UTC以来的秒数。您可以直接比较两个日期,看看哪个更早。但是,如果你想比较平等,那就更棘手了。如果你想看看它们是否在一分钟之内,你可以做类似的事情

 [date1 timeIntervalSinceDate: date2] < 60.0;