NSString を日付形式の NSString のチャンクに変換します
-
20-09-2019 - |
質問
これは簡単かもしれません。探しましたが、まだ見つかりません。
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"
)を組み込むために、元のフォーマッタの形式を変更するか必要があります。