首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未来相对日期人类可读的形式

未来相对日期人类可读的形式
EN

Stack Overflow用户
提问于 2013-01-19 08:35:10
回答 1查看 634关注 0票数 0

如何输出人类可读的日期,如将NSDATE转换为人类可读的形式,如明天,一周后,一个月后,等等?

例如,如果当前时间是2012年1月19日上午7点

输入日期为2012年1月20日上午9点

那么明天上午9点就应该开始了。

我发现如何在网上处理过去的日期,而不是未来的日期。

另外,我在网上找到的功能也不是很具体。任何帮助都将不胜感激!谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-01-19 08:39:22

您需要使用NSDateFormatter。从docs

setDoesRelativeDateFormatting:指定接收方是否使用诸如“今天”和“明天”之类的短语作为日期组件。

代码语言:javascript
复制
- (void)setDoesRelativeDateFormatting:(BOOL)b

参数b是,指定接收方应使用相对日期格式,否则为否。讨论如果日期格式化程序使用相对日期格式,则在可能的情况下,它将其输出的日期部分替换为短语-例如“今天”或“明天”-that表示相对日期。可用的短语取决于日期格式化程序的区域设置;而对于将来的日期,英语可能只允许使用“明天”,而法语可能允许使用“后天”,如下面的示例所示。

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14409853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档