1

日付文字列を別の形式に変換しようとしています。私はこのようにしています。

NSLog(@"datestring is NOW %@",_dayObject.p_date);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-DD"];
NSDate *date = [dateFormat dateFromString:_dayObject.p_date];
NSLog(@"date transformed %@",date);
[dateFormat setDateFormat:@"EEEE, dd/MM/YYYY"];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
NSString *dateStr = [dateFormat stringFromDate:date];
NSLog(@"datestring is AFTER %@",dateStr);

しかし、これは私のNSLOGから得たものです

2013-04-18 08:43:36.181 mosaqua2[9629:907] datestring is NOW 2013-05-04
2013-04-18 08:43:36.184 mosaqua2[9629:907] date transformed 2013-01-03 23:00:00 +0000
2013-04-18 08:43:36.184 mosaqua2[9629:907] datestring is AFTER donderdag, 03/01/2013

私がしたいのは

Saterday, 04/05/2013

誰でも私を助けることができますか?

4

6 に答える 6

2

日付形式を変換するには、次のカスタムメソッドを使用してください...

-(NSString *)changeDateFormat:(NSString*)stringDate dateFormat:(NSString*)dateFormat getwithFormat:(NSString *)getwithFormat{


    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:dateFormat];

    NSDate *date = [dateFormatter dateFromString:stringDate];

    dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:getwithFormat];

    NSString *convertedString = [dateFormatter stringFromDate:date];
    NSLog(@"Converted String : %@",convertedString);
    return convertedString;
}

次のように使用します...

NSString *strSDate = [self changeDateFormat:_dayObject.p_date dateFormat:@"yyyy-MM-dd" getwithFormat:@"EEEE, dd/MM/yyyy"];
NSLog(@"datestring is AFTER %@",strSDate);

この投稿で私のブログを参照してください...

于 2013-04-18T06:49:02.653 に答える
0

これを変更してください:「YYYY」

To : "yyyy"

エラーの理由、

YYYY を使用するのはよくある間違いです。yyyy は暦年を指定し、YYYY は ISO 年週カレンダーで使用される (「年の週」の) 年を指定します。ほとんどの場合、yyyy と YYYY は同じ数値になりますが、異なる場合もあります。通常、暦年を使用する必要があります。

于 2013-04-18T07:09:20.647 に答える
0

出力を取得することをsetTimeZoneコメントしてください。

NSLog(@"datestring is NOW %@",_dayObject.p_date);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-DD"];
NSDate *date = [dateFormat dateFromString:_dayObject.p_date];
NSLog(@"date transformed %@",date);
[dateFormat setDateFormat:@"EEEE, dd/MM/YYYY"];
//[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; //NOT NEEDED
NSString *dateStr = [dateFormat stringFromDate:date];
NSLog(@"datestring is AFTER %@",dateStr);
于 2013-04-18T06:59:56.700 に答える
0

パラメータの大文字と小文字を確認してください

NSLog(@"datestring is NOW %@",_dayObject.p_date);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; //MODIFIED
NSDate *date = [dateFormat dateFromString:_dayObject.p_date];
NSLog(@"date transformed %@",date);
[dateFormat setDateFormat:@"EEEE, dd/MM/yyyy"]; //MODIFIED
NSString *dateStr = [dateFormat stringFromDate:date];
NSLog(@"datestring is AFTER %@",dateStr);
于 2013-04-18T06:49:11.833 に答える