-2

我以这种格式 ( 2012-07-13 09:22:22 +0000) 接收日期。我想将此日期格式转换为13-Jul-2012 09:22. 而且如果日期是今天意味着我想改变Today 09:22Yesterday 09:22。有人可以帮忙吗?

编辑:

我添加了一些我尝试过的代码。

     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);
4

2 回答 2

1

我看到的第一个问题是您提供给格式化程序的日期模式与您声称获得的日期字符串不匹配。你可能想试试这个:

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

您在提供的代码中使用的格式有年份、月份、日期反转并且您不转换第二个。

于 2012-07-14T17:01:59.270 回答
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 然后根据结果显示今天/明天。

于 2012-07-14T17:39:41.330 回答