如何输出人类可读的日期,例如将NSDATE转换为人类可读的形式,如明天,一周后,一个月后,等等?
例如,如果当前时间是2012年1月19日上午7点
,输入日期是2012年1月20日上午9点
然后该功能将于明天上午9点结束。
我发现如何使用过去的在线日期,而不是将来的日期。
我在网上找到的功能也不具体。任何帮助,将不胜感激!感谢
答案 0 :(得分:2)
您需要使用NSDateFormatter。来自docs:
setDoesRelativeDateFormatting:指定接收方是否使用 日期组件的“今天”和“明天”等短语。
- (void)setDoesRelativeDateFormatting:(BOOL)b
参数b YES指定接收方应使用相对日期 格式化,否则为NO。讨论如果日期格式化程序使用相对 日期格式,尽可能替换其日期组件 用短语输出 - 例如“今天”或“明天” - 表示a 相对日期。可用的短语取决于日期的区域设置 格式;而对于将来的日期,英语可能只允许 “明天,”法国人可能允许“后天后天” 如以下示例所示。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
NSLocale *frLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"];
[dateFormatter setLocale:frLocale];
[dateFormatter setDoesRelativeDateFormatting:YES];
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:60*60*24*3];
NSString *dateString = [dateFormatter stringFromDate:date];
NSLog(@"dateString: %@", dateString);
// Output
// dateString: après-après-demain