0

次のように、セクションが日で区切られたテーブルビューがあります。

2012年1月15日2012年
1月16日2012年
1月21日2012年
1月30日2012年
1月31日2012年
2月1日2012年
2月2日

私は次のコードを使用しています:

UILabel * lbDayOfWeek = (UILabel *)[cell viewWithTag:1];
NSDate * date = [m_arEventsSorted objectAtIndex:section];
NSDateFormatter* theDateFormatter = [[NSDateFormatter alloc] init];
[theDateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
[theDateFormatter setDateFormat:@"EEEE"];
NSString * weekDay =  [theDateFormatter stringFromDate:date];
lbDayOfWeek.text = weekDay;

UILabel * lbMonthDayYear = (UILabel *)[cell viewWithTag:2];
[theDateFormatter setDateFormat:@"MMM D YYYY"];
NSString * monthDayYear =  [theDateFormatter stringFromDate:date];
lbMonthDayYear.text = monthDayYear;

しかし、私の日々は月末に最初からやり直すことはありません。たとえば、次のようになります。

2012年1月15日2012年
1月16日2012年
1月21日2012年
1月30日2012年
1月31日2012年
2月32日2012年
2月33日

上記のコードが間違った日を出力している理由がわかりません。

4

2 に答える 2

3

フォーマット指定子を確認してください。大文字の「D」は、月の日が必要な場合の日を意味ます。2月の初日はその年の32日目でもあります。

フォーマット文字列は。である必要があります@"MMM d yyyy"

(小文字と大文字の「y」の違いにも注意してください。ほとんどの場合、小文字が必要です。データフォーマットガイドの「日付のフォーマット:固定フォーマット」の注1を参照してください。)

于 2013-01-06T22:56:41.550 に答える
0

NSDateFormatterMediumStyleを探しています。フォーマットを設定せず、フォーマットの代わりにスタイルを設定してください。

[theDateFormatter setDateFormat: NSDateFormatterMediumStyle];

日付形式は、ニーズに合ったスタイルが見つからない場合にのみ使用してください。この場合、形式はになります@"MMM d, yyyy"

于 2013-01-06T21:44:12.910 に答える