我怎样才能格式化两个NSDate作为一个时间差的string(例如2天前),并使其遵循设备的区域格式?

标准框架是否支持时间差异格式并创build遵循区域设置的格式? 我知道我可以把它分解到NSDateComponents,但是我将不得不附加文本,并创build自己的不同的语言支持文件。 我想知道可能有一种方法来格式化date,并遵循区域设置简单和类似于这…

dateFormat = [[[NSDateFormatter alloc] init] autorelease]; [dateFormat setDateStyle:NSDateFormatterMediumStyle]

谢谢

您可以通过执行以下操作打开相对date格式:

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.doesRelativeDateFormatting = YES; 

这会给你看起来像“昨天”,“今天”,“明天”等datestring

如果这还不够,那么这可能是有用的:http: //zetetic.net/code/nsdate-helper

NSDate类别没有为我想要的,所以我添加了我自己的函数基于一个在类别中的似乎工作,但没有保证;)当然这只会给你一些信息 – 它不会给你区域设置格式等

 - (NSUInteger)daysAgoAgainstMidnight2 { // get a midnight version of ourself: NSDateFormatter *mdf = [[NSDateFormatter alloc] init]; [mdf setDateFormat:@"yyyy-MM-dd"]; NSDate *midnightMe = [mdf dateFromString:[mdf stringFromDate:self]]; NSDate *midnightNow = [mdf dateFromString:[mdf stringFromDate:[NSDate date]]]; NSDateComponents *components = [calendar components:(NSDayCalendarUnit) fromDate:midnightMe toDate:midnightNow options:0]; return [components day]; }