2011-07-17 14 views
25

「Sun Jul 7 07:48:34 +0000 2011」 を「2011-07-17 07:48:34」の形式に変換するにはどうすればよいですか?目的のCで日付形式を変換する

NSDateFormatterを次のように使用しましたが、動作しませんでした。結果としてnullが返されます。

NSDateFormatter *objDateFormatter = [[NSDateFormatter alloc] init]; 
[objDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
[objDateFormatter dateFromString:sDate]; 
+0

あなたはあなたはNSDateFormatterで使用しましたか? –

+0

[iOS 4.1のNSDate形式](http://stackoverflow.com/questions/3716384/nsdate-format-in-ios-4-1) –

+1

[iPhone:日付文字列を相対タイムスタンプに変換する]の複製が可能http://stackoverflow.com/questions/902950/iphone-convert-date-string-to-a-relative-time-stamp) – Ayaz

答えて

2

SDATEはフォーマット「日7月17日7時48分34秒0000 2011」にあります、あなたの文字列である場合は、NSDateにそれを変換する必要があります。次に、2番目のNSDateFormatterを使用して、この日付を目的の形式 "yyyy-MM-dd HH:mm:ss"に変換できます。

あなたが変換するために必要な文字列を把握する必要がある場合、このサイトは偉大な参照を持っています http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns

例えば「日7月17日午前七時48分34秒0000 2011」アドバイスのビットとして

[dateFormatter setDateFormat:@"EEE MMM d HH:mm:ss ZZZ yyyy"]; 

で解析することができ、「7月」のような非標準の日付が(7月べきである)、ここで問題を作ることができます。 strftime()を使って単純なC言語で必要な部分を変換する方が速いです。 リファレンスを参照してください:あなたは、日付/時刻の解析のためのCを使用して

[NSDate dateWithTimeIntervalSince1970:] 

バックNSDateでのUNIXタイムスタンプを変換することができますhttp://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/index.jsp?topic=/com.ibm.etools.iseries.langref.doc/rzan5mst263.htm

は速く、通常は10倍までです。 NSDateFormatterは遅い犬です。

はあなたが渡している日付のスタイルのためのあなたの日付形式が間違って持っている。ここ異なる修飾子を説明する文書である
+0

日付形式のパターンとの素敵なリンク - 非常に役に立ちます – gbk

59

Date Format Patterns

を日付を解析するには、「日7月17日の午前7時48分34秒+ 0000 2011" 次の形式にそれを取得するには

[dateFormat setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"]; 

:、あなたがそうのようなフォーマットを必要とするだろう 『:

2011-07-17 7時48分34秒』、ここでの完全なコードです
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"]; 
NSDate *date = [dateFormatter dateFromString:sDate]; 

// Convert to new Date Format 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSString *newDate = [dateFormatter stringFromDate:date]; 
+0

ありがとうございました:) – farajnew

+0

問題です。 ..それはシミュレータ上で正常に動作しますが、実際のデバイスで動作しませんか? – farajnew

+0

デバイスにはどのような問題がありますか?エラーですか?クラッシュ?あなたはあなたの問題を説明する必要があります... –

関連する問題