2016-11-03 6 views
0

Я пытаюсь создать что-то похожее на Timego Кевина Лоулера на будущие даты. Кажется, что использование dateFormatter и установка SetDoesRelativeDateFormatting: YES - это ближайший атрибут api к этой библиотеке или подобным библиотекам на других языках. Apple предоставляет пример кода ниже, который я работаю. Тем не менее, его будущие возможности ограничены заменой завтрашнего дня на завтрашний день, и поэтому я пытаюсь объединить его с NSDateFormatter. По какой-то причине, однако, я не могу заставить их работать вместе.IOS: NSDateFormatter

Apple, код ссылки:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.timeStyle = NSDateFormatterNoStyle; 
dateFormatter.dateStyle = NSDateFormatterMediumStyle; 
dateFormatter.doesRelativeDateFormatting = YES; 

NSDate *date = [NSDate dateWithTimeIntervalSinceNow:60*60*24*3]; 
NSString *dateString = [dateFormatter stringFromDate:date]; 
NSLog(@"dateString: %@", dateString); //logs valid output 

Если вместо того, чтобы использовать timestyle или datestyle, однако, я использую setDateFormat, когда я выйти на результат, я получаю ноль.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"]; 
dateFormatter.doesRelativeDateFormatting = YES; 
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:60*60*24*3]; 
NSString *dateString = [dateFormatter stringFromDate:date]; 
NSLog(@"dateString: %@", dateString); //logs blank 

ли doesRelativeDateFormatting работать только с NSDateFormatterMediumStyle или вы можете комбинировать его с setDateFormat каким-то образом, что я не вижу?

+0

Update вашего вопроса с каким примером вводом и выводом, которые хотят. – rmaddy

ответ

0

Пожалуйста, используйте ниже кода он работал для меня

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    dateFormatter.timeStyle = NSDateFormatterNoStyle; 
    dateFormatter.dateStyle = NSDateFormatterMediumStyle; 
    dateFormatter.doesRelativeDateFormatting = YES; 

    NSDate *date = [NSDate dateWithTimeIntervalSinceNow:60*60*24*3]; 
    NSString *dateString = [dateFormatter stringFromDate:date]; 
    NSLog(@"dateString: %@", dateString); //logs valid output 


    dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"]; 
    dateFormatter.doesRelativeDateFormatting = NO; 
    date = [NSDate dateWithTimeIntervalSinceNow:60*60*24*3]; 
    dateString = [dateFormatter stringFromDate:date]; 
    NSLog(@"dateString: %@", dateString); //logs date correctly