2011-08-09 17 views
0

"yyyymmdd"のような文字列を "mm-dd-yyyy"という形式の文字列に変換する最良の方法についてお話します。運がないNSDateFormatterを試してみました。どんな助けもありがとう!次のように簡単な日付書式設定の質問yyyymmdd

私のソリューションは、次のとおりです。

NSString *dateString = @"22082011; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyyMMdd"]; 
NSDate *date = [dateFormatter dateFromString:dateString]; 

[dateFormatter setDateFormat:@"MMM d, YYYY"]; 
dateString = [dateFormatter stringFromDate:date]; 
[dateFormatter release]; 
+0

正確にはあなたが望むものが不明です。書式文字列を再配置しようとしていますか? – jtbandes

+0

私はちょうどそれを通過し、substringWithRange、substringToIndexなどを使用するよりもエレガントな方法で、整理された文字列をしたいです。 – Mason

+0

通常は " - /"を "mm/dd/yyyy"国際的な表記法(yyyy-mm-dd)、 "/"とアメリカの表記(mm/dd/yyyy)および "。"ヨーロッパのものへ(dd.mm.yyyy)。 – glglgl

答えて

7

あなたが最初にそれを解析する必要があります。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyyMMdd"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
と、あなたは、この使用することができますから、

[dateFormat setDateFormat:@"yyyy-MM-dd"]; 
NSString *myFormattedDate = [dateFormat stringFromDate:date]; 
+0

パーフェクト!ありがとう! – Mason

3
NSString *dateStr = @"20081122"; 

// Convert string to date object 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyyMMdd"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 

// Convert date object to desired output format 
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"]; 
dateStr = [dateFormat stringFromDate:date]; 
[dateFormat release]; 

をa helpful article.

+1

フォーマッターのようなものがリリースされなければならないというニースのリマインダー! – tomdemuyt