-2

この形式で日付を受信して​​います(2012-07-13 09:22:22 +0000)。この日付形式をに変換したいと思います13-Jul-2012 09:22。また、日付が今日の場合は、変更Today 09:22したいことを意味しYesterday 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 に答える