質問

これは簡単かもしれません。探しましたが、まだ見つかりません。

NSString @"20100216190205" を @"yyyy-MM-dd HH:mm:ss" 形式の NSString に変換するにはどうすればよいですか。

つまり:@「2010-02-16 19:02:05」

編集:他の状況では、より汎用的に NSDateFormatter を使用することは避けたいと考えていました。

役に立ちましたか?

解決

純粋なコードを書くの練習など

NSString* digits = @"20100216190205"; // this is probably a parameter somewhere
NSMutableString* formatted = [digits mutableCopy];
[formatted insertString:@":" atIndex:12];
[formatted insertString:@":" atIndex:10];
[formatted insertString:@" " atIndex:8];
[formatted insertString:@"-" atIndex:6];
[formatted insertString:@"-" atIndex:4];
NSLog(@"original string: %@ -> formatted: %@", digits, formatted);

しかし、私は同意する:自分で簡単に行く、そしてこのために日付フォーマッタを使用する

他のヒント

あなたは<のhref = "http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/NSDateComponents_Class/を使用し、その後、整数(-intValue)に変換し、各部分を抽出することができますindex.htmlの」REL = "nofollowをnoreferrer"> NSDateComponents のは、日付にこれらを変換します。そして、それははるかに厄介NSDateFormatterを使用するよりもです。

あなたのケースでは、NSDateFormatterのフォーマットがyyyyMMddHHmmss、すなわちを呼び出す前に-dateFromString:するように設定する必要があります。

[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....

あなたはあなたの例を持っている文字列を解析するためにYYYYMMDDHHMMSSにごformatterの書式を設定する必要があります。あなたは新しいフォーマッタを作成したりしたい、より視覚に訴える1(@"yyyy-MM-dd HH:mm:ss")を組み込むために、元のフォーマッタの形式を変更するか必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top