0

xml ファイルから日付を解析し、次のような文字列変数に格納します。

NSString *dateTex = [[stories objectAtIndex: storyIndex] objectForKey: @"date"];

この変数をコンソールに出力しようとすると、次のようになります。

オブジェクトの値は次のとおりです。金、2012 年 6 月 1 日 15:52:00 GMT

上記の日付の形式を文字列変数に再度格納するように変更しようとしていますが、次のようになります: dd/mm/yy. 私はこのコードを試しました:

//changing dates format
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE, d MMM YYYY HH:mm:ss Z"];

NSDate *date = [dateFormatter dateFromString:dateTex];
[dateFormatter release];

NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
[dateFormatter2 setDateFormat:@"dd/mm/yyyy"];
NSString *dateText = [dateFormatter2 stringFromDate:date];
[dateFormatter2 release];
NSLog(@"the object value is:%@",dateText);

しかし、コンソールにdateText変数を出力すると、次のようになります:

オブジェクト値は次のとおりです:(ヌル)

私は間違って何をしていますか?日付は変数に保存されませんか? ありがとう!

4

3 に答える 3

0

最初の dateformatter の日付形式が間違っています。[dateFormatter setDateFormat:@"EEE, dd MMM YYYY HH:mm:ss Z"]; である必要があります。

お役に立てれば。

于 2012-06-04T09:54:48.633 に答える
0

これを試してください(setDateFormat行が変更されます)。

    //changing dates format
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"]; // changed line in your code

    NSDate *date = [dateFormatter dateFromString:dateTex];
    [dateFormatter release];

    NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
    [dateFormatter2 setDateFormat:@"dd/MM/yyyy"]; // changed line in your code
    NSString *dateText = [dateFormatter2 stringFromDate:date];
    [dateFormatter2 release];
    NSLog(@"the object value is:%@",dateText);

暦年は「yyyy」、月は「MM」を使用します。

于 2012-06-04T10:21:37.537 に答える
0

おそらく、解析形式が間違っています。NSDate* の日付が正しく入力されているかどうかを確認します。

先頭に 0 がある日を取得するため、おそらく別の d が必要です。
試してください: EEE, dd MMM YYYY HH:mm:ss Z.

于 2012-06-04T09:51:01.283 に答える