2012-07-14 87 views
-2

上述格式的收件日期(2012-07-13 09:22:22 +0000)。我想将此日期格式转换为13-Jul-2012 09:22。而且如果日期是今天意味着我想更改Today 09:22Yesterday 09:22。任何人都可以请帮忙做到这一点?NSDateFormatter在iPhone应用程序?

编辑:

我加入了一些代码我都试过了。

 NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; 
    [dateFormatter1 setDateFormat:@"dd-mm-yyyy hh:mm"]; 
    [dateFormatter1 setFormatterBehavior:NSDateFormatterBehaviorDefault]; 
    [dateFormatter1 setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
    NSDate *date = [dateFormatter1 dateFromString:dateStr];// Change Date Format 

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateStyle:NSDateFormatterShortStyle]; 
    [formatter setTimeStyle:NSDateFormatterShortStyle]; 
    [formatter setDoesRelativeDateFormatting:YES]; 
    NSString *dateString1 = [formatter stringFromDate:date]; // Getting Today or Tomorrow 
    [formatter release]; 
    NSLog(@"DateString1 : %@", dateString1); 
+2

你试过了什么?你只需要找到合适的格式化程序。你能显示一些代码吗? – shannoga 2012-07-14 16:40:27

+0

@shannoga我编辑了我的代码。你可以帮我吗?谢谢。 – Gopinath 2012-07-14 16:44:54

回答

0

你可以试试这个:

NSDate *date = [NSDate date]; // date in this format 2012-07-14 17:32:09 +0000 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"dd-MMM-yyyy hh:mm"]; 
    //[dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; // Optional 
    NSString *dateStr = [dateFormatter stringFromDate:date]; 

而接下来与使用如NSDate的方法当前日期比较你的“日期”。 timeIntervalSinceReferenceDate,然后基于今天/明天的结果显示。

1

我看到的第一个问题是,你提供给格式化日期模式不匹配,你要求你获得的日期字符串。你可能想试试这个:

[dateFormatter1 setDateFormat:@"yyyy-mm-dd hh:mm:ss Z"]; 

使用的代码,你提供的格式您已年,月,日逆转,你不转换第二。