2012-04-06 5 views
0

このコードで何が問題になっていますか?日付はUILabelに表示されません

NSString *strTest = @"Sun Apr 12 23:29:24 +0000 2009"; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"MM/dd/yy"]; 
    NSDate *createdAtFormatted = [dateFormatter dateFromString:strTest]; 
    self.createdAt.text = [dateFormatter stringFromDate:createdAtFormatted]; 

self.createdAtはUILabelであり、空のままです。どうして?

dateWithNaturalLanguageStringを使用しようとすると、私が手:

enter image description here

+0

フォーマッタが文字列を日付に変換できないためです。 'createdAtFormatted'は' nil'です。書式文字列と日付文字列を一致させる必要があります。 – Costique

答えて

1

あなたの日付フォーマッタ日付形式はstrTest文字列から日付形式と一致していません。

NSString *strTest = @"Sun Apr 12 23:29:24 +0000 2009"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSLocale *loc = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; // so the formatter recognizes english names for months and days 
[dateFormatter setLocale:loc]; 
[loc release]; // remove if using ARC 
[dateFormatter setDateFormat:@"EEE MMM d HH:mm:ss ZZZZ yyyy"]; 
NSDate *createdAtFormatted = [dateFormatter dateFromString:strTest]; 
NSLog(@"got %@", createdAtFormatted); 

フォーマッタ指定子はhereです。

+0

文字列形式を教えてもらえますか?私は自分の文字列のために正しく作成する方法を知らない。 –

+0

もちろん - 'NSDate * createdAtFormatted = [NSDate dateWithNaturalLanguageString:strTest];'に行きます。私はフォーマッタフラグを設定しようとしましたが、月の部分は失敗し続けました(4月)。このソリューションは迅速で効果的ですが、関数の使用は推奨されません。フォーマットを読み込めないと予期しない結果が生じる可能性があるからです。 – Alexander

+0

dateWithNaturalLanguageStringはクラスメソッドとして知られていません。私はXcode 4.2とSnow Leopardを使用しています。 –

1

あなたはdateFormatterにMM/dd/yyパターンを与えていますが、日付ストリングがそれに適していないため、dateFormatterはnil日付を返します。

関連する問題