1

私はこの質問が以前に尋ねられたことを知っています(特にここで:NSStringをNSDateに変換する(そして再び戻す))が、私は問題を抱えています。この形式で日付を返すRSSフィードパーサーを使用しています。

Fri, 23 Nov 2012 15:39:00 -0800

私はそれをこのフォーマットに変換したいと思います:

Nov. 23 2012

このようにフォーマットされた別の時間で:

3:39:00 PM

これが私が現在持っているコードです:

NSString *RSSDate1=@"Fri, 23 Nov 2012 15:39:00 -0800";
NSDateFormatter *RSSDateFormatter = [[NSDateFormatter alloc] init];
[RSSDateFormatter setDateFormat:@"D, d M Y H:i:s O"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [RSSDateFormatter dateFromString:RSSDate1];
[RSSDateFormatter release];
NSDateFormatter *RSSDateFormatter2=[[NSDateFormatter alloc] init];
[RSSDateFormatter2 setDateStyle:NSDateFormatterShortStyle];
UIAlertView *dateAlert=[[UIAlertView alloc] init];
[dateAlert setTitle:[RSSDateFormatter2 stringFromDate:dateFromString]];
[dateAlert addButtonWithTitle:@"Dismiss"];
[dateAlert show];
[dateAlert release];

現在、文字列はnilを返しているので、フォーマットがオフになっているに違いありません。どんな助けでもいただければ幸いです。ありがとう!

4

2 に答える 2

1

この構成済みのNSDateFormatterを使用して、現在の日付(現在)をNSStringに変換し、文字列を出力してみてください。出力されるフォーマットを見て、必要なフォーマットと比較します。違いは、希望のフォーマットを取得するために何を変更する必要があるかについての手がかりになるはずです。

于 2012-11-24T02:10:05.813 に答える
0

に変更して、

NSString *RSSDate1 = @"Fri, 23 Nov 2012 15:39:00 -0800";
NSDateFormatter *RSSDateFormatter = [[NSDateFormatter alloc] init];
[RSSDateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzzzz"];

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [RSSDateFormatter dateFromString:RSSDate1];
NSLog(@"dateFromString = %@", dateFromString);    
[RSSDateFormatter release];

NSDateFormatter *RSSDateFormatter2 = [[NSDateFormatter alloc] init];
[RSSDateFormatter2 setDateFormat:@"MMM dd, yyyy hh:mm aaa"];
NSLog(@"dateToString = %@", [RSSDateFormatter2 stringFromDate:dateFromString]);

UIAlertView *dateAlert = [[UIAlertView alloc] init];
[dateAlert setTitle:[RSSDateFormatter2 stringFromDate:dateFromString]];
[dateAlert addButtonWithTitle:@"Dismiss"];
[dateAlert show];
[dateAlert release];

出力:

dateToString=2012年11月23日03:39PM

「2012年11月23日金曜日15:39:00 -0800」の形式は「EEE、dd MMM yyyy HH:mm:ss zzzzz」であり、「2012年11月23日03:39PM」の形式は「MMMdd」であることに注意してください。 、yyyy hh:mmaaa"。形式の各文字は、日付文字列の対応する単語を表します。例:-EEEは金、aaaはPMなどです。このフォーマットの方法の詳細については、これを確認してください。

于 2012-11-24T02:12:40.933 に答える