如何输出人类可读的日期,如将NSDATE转换为人类可读的形式,如明天,一周后,一个月后,等等?
例如,如果当前时间是2012年1月19日上午7点
输入日期为2012年1月20日上午9点
那么明天上午9点就应该开始了。
我发现如何在网上处理过去的日期,而不是未来的日期。
另外,我在网上找到的功能也不是很具体。任何帮助都将不胜感激!谢谢
发布于 2013-01-19 08:39:22
您需要使用NSDateFormatter。从docs
setDoesRelativeDateFormatting:指定接收方是否使用诸如“今天”和“明天”之类的短语作为日期组件。
- (void)setDoesRelativeDateFormatting:(BOOL)b参数b是,指定接收方应使用相对日期格式,否则为否。讨论如果日期格式化程序使用相对日期格式,则在可能的情况下,它将其输出的日期部分替换为短语-例如“今天”或“明天”-that表示相对日期。可用的短语取决于日期格式化程序的区域设置;而对于将来的日期,英语可能只允许使用“明天”,而法语可能允许使用“后天”,如下面的示例所示。
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-demainhttps://stackoverflow.com/questions/14409853
复制相似问题