2011-01-20 6 views
35

私のiPhoneアプリケーションでは、1日の名前を表示したいと思いますが、解決策が見つかりません。 助けてくれてありがとう曜日名NSDateから?

答えて

109
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEEE"]; 
NSString *dayName = [dateFormatter stringFromDate:yourDate]; 
[dateFormatter release]; 

あなたはユーザーのロケールでdayNameを取得します。

(日付形式サンプルのUnicode standardsを確認してください)

+0

FYI異なるバージョンがUnicode標準の異なるバージョンを使用して行います。私はhttps://developer.apple.com/library/content/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.htmlで古いテーブルを見つけました – rakslice

+0

私はこれにabreviationを得ています: "木" – htafoya

3

- [NSCalendar components:fromDate:]をご覧ください。

別のカレンダー(グレゴリオ暦、中国語など)で日数が異なる可能性があるため、日付自体は日がありません。

EDIT:実際は、申し訳ありません。これは、あなたがプログラムを使用して昼を過ごすためにやることです。日だけを表示したい場合は、NSDateFormatterを見てください。

+0

私は、iOSの/ MacOSののおかげでケン –

0

日付と時刻の処理には多くの素晴らしいリソースがあります。これはgithubから学んだものです。

14

私の答えだった、それを見つけた:

NSDate *now = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEEE"]; 
NSLog(@"%@",[dateFormatter stringFromDate:now]); 

おかげで

3

NSDateカテゴリ

+ (NSString *)dayNameWith0Monday:(NSInteger)index { 

    static NSDateFormatter * DateFormatter = nil; 
    if (DateFormatter == nil) { 
     DateFormatter = [[NSDateFormatter alloc] init]; 
     [DateFormatter setDateFormat:@"EEEE"]; 
     [DateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
    } 

    NSDate * day = [NSDate dateWithTimeIntervalSince1970:((4 * 24 * 60 * 60) + (24 * 60 * 60 * index))]; 
    return [DateFormatter stringFromDate:day]; 
} 

0は常に月曜日になります!場合にはあなたは、そのような行動を必要とする

+0

私です何かが欠落している、またはDateFormatterのための方法がありません!= nilのクラスメソッドですか? – Andrespch

+0

あなたはおそらくDateFormatter = nilを省略することができます。 –

0

@Jilouc答えスウィフト中:

let formatter = DateFormatter.init() 
formatter.dateFormat = "EEEE" 
let date = Date.init() //or any date 
let dayName = formatter.string(from: date) 
関連する問題