用iphone中的"今天"和"昨天"字符串替换日期对象

Ana*_*nya 12 iphone objective-c nsdate

我想用字符串"今天"和"昨天"返回我的日期对象,并在目标C中返回日期.欢迎所有评论:

我的日期格式为@"yyyy-MM-dd HH:mm:ss"],然后确定日期是今天还是昨天,如果是,则返回"(昨天|今天|日期)"格式字符串.

Mat*_*uch 25

NSDateFormatter可以做到这一点.但是,这不适用于自定义日期格式,但在大多数情况下,当您需要相对日期时,您将它们呈现给用户,并且您不应该首先使用硬编码日期格式.

NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.timeStyle = NSDateFormatterMediumStyle;
df.dateStyle = NSDateFormatterShortStyle;
df.doesRelativeDateFormatting = YES;  // this enables relative dates like yesterday, today, tomorrow...

NSLog(@"%@", [df stringFromDate:[NSDate dateWithTimeIntervalSinceNow:-48*60*60]]);
NSLog(@"%@", [df stringFromDate:[NSDate dateWithTimeIntervalSinceNow:-24*60*60]]);
NSLog(@"%@", [df stringFromDate:[NSDate date]]);
NSLog(@"%@", [df stringFromDate:[NSDate dateWithTimeIntervalSinceNow:24*60*60]]);
NSLog(@"%@", [df stringFromDate:[NSDate dateWithTimeIntervalSinceNow:48*60*60]]);
Run Code Online (Sandbox Code Playgroud)

这将打印:

2013-06-06 09:13:22.844 x 2[11732:c07] 6/4/13, 9:13:22 AM
2013-06-06 09:13:22.845 x 2[11732:c07] Yesterday, 9:13:22 AM
2013-06-06 09:13:22.845 x 2[11732:c07] Today, 9:13:22 AM
2013-06-06 09:13:22.846 x 2[11732:c07] Tomorrow, 9:13:22 AM
2013-06-06 09:13:22.846 x 2[11732:c07] 6/8/13, 9:13:22 AM
Run Code Online (Sandbox Code Playgroud)

On a device with german locale this will print "Vorgestern" (the day before yesterday) and "Übermorgen" (the day after tomorrow) for the first and last date.


Veg*_*gar 5

什么NSDateFormatter小号setDoesRelativeDateFormatting

指定接收者是否对日期部分使用诸如“今天”和“明天”之类的短语。

- (void)setDoesRelativeDateFormatting:(BOOL)b
设置参数b = YES,以指定接收者应使用相对日期格式,否则为NO。

看看:NSDateFormatter类参考