3

「難しい」部分は終わったと思いましたが、そうではないようです。NSDateに変換したいRSSフィードから日付を取得し、それを単純な形式(MM / DD / YYYY)に変更します。日付はRSSフィードで次の形式で表示されます。

2012年11月1日木曜日17:41:56CST

NSDateに正常に変換しました。

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"E, d MMM yyyy HH:mm:ss zzz"];
NSDate *date = [[NSDate alloc] init];
//[df setDateStyle:NSDateFormatterMediumStyle]; Using these seems to change what it expects from the string I guess?
//[df setTimeStyle:NSDateFormatterMediumStyle];
date = [df dateFromString:string];
[self.tempItem setPubDate:[df dateFromString:string]];
NSLog(@"%@", [df dateFromString:string]);

だから私は私の日付をうまく取得しますが、前に言ったように、それを単純な日付に変換したいと思います。setDateStyleを使用すると、null値になります。使用しないと、正しい日付が表示されますが、最終的には希望する形式ではありません。

4

2 に答える 2

2

私はそれが最終的になりたいフォーマットではありません。

NSLog()フォーマットについて知らないので-どうしますか?NSDate組み込みの「フォーマット」はありません。NSDateFormatterもう一度を使用して、日付オブジェクトから文字列を取得する必要があります。基本的に、使用する必要のあるワークフローは大まかに次のとおりです。

  • RSSフィードからNSStringを取得する
  • 日付フォーマッタを作成する
  • 文字列の形式に従って形式を設定します
  • NSDate日付フォーマッタからオブジェクトを取得します
  • NSDateFormatterのフォーマットを希望のフォーマットにリセットします
  • NSString日付および日付フォーマッタオブジェクトを使用して、適切にフォーマットされたものを取得します。
于 2012-11-03T15:06:05.100 に答える
1

別のNSDateFormatterを作成して、NSDateをNSStringに変換するだけです。

NSDateFormatter * dfSimple = [[NSDateFormatter alloc] init];

[dfSimple setTimeStyle:NSDateFormatterNoStyle];

[dfSimple setDateStyle:NSDateFormatterMediumStyle];

NSLog(@ "%@"、[dfSimple stringFromDate:date]);

この場合、2つのNSDateFormatterオブジェクトを作成することをお勧めします

于 2012-11-03T15:08:57.880 に答える