2009-04-13 14 views

答えて

38

開始するには、Dates and Times Programming Topics for Cocoaとする必要があります。これは、日付の高レベルの変換のために、Cocoaで提供されているさまざまな日付/時刻/カレンダーオブジェクトを使用することの良い理解を与えるでしょう。

このコードスニップ、しかし、あなたの特定の問題にお答えします:

- (NSInteger)currentHour 
{ 
    // In practice, these calls can be combined 
    NSDate *now = [NSDate date]; 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    NSDateComponents *components = [calendar components:NSHourCalendarUnit fromDate:now]; 

    return [components hour]; 
} 
+0

Upvote。 –

+0

+1をコールすると連鎖できます – Abizern

+0

WWDCのビデオを見て、今週のNSHipsterを見てください – uchuugaka

6

一つの方法は、必要に応じて時間を解析、現在の時間だNSCalendarとNSDateComponents

NSDate *now = [NSDate date]; 
NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSDateComponents *components = [calendar components:NSHourCalendarUnit fromDate:now]; 
NSInteger hour = [components hour]; 
1
[NSDate date] 

を使用することです。あなたは正確に何時を意味するのか、例えば現在のタイムゾーンにフォーマットされているかのような詳細をたくさん提供していませんでしたか?または別のもの?

2

私もココアに新しいですし、私はこれを見つけた、非常にうれしく思います。また、1つのNSDateComponentsオブジェクトで現在の時、分、秒を返す関数を簡単に作成できることを含めることもできます。このように:

// Function Declaration (*.h file) 
-(NSDateComponents *)getCurrentDateTime:(NSDate *)date; 

// Implementation 
-(NSDateComponents *)getCurrentDateTime:(NSDate *)date 
{ 
    NSDate *now = [NSDate date]; 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    NSDateComponents *comps = [calendar components:NSHourCalendarUnit + NSMinuteCalendarUnit + NSSecondCalendarUnit fromDate:now]; 
    return comps; 

} 

// call and usage 

NSDateComponents *today = [self getCurrentDateTime:[NSDate date]]; 
     hour = [today hour]; 
     minute = [today minute]; 
     second = [today second]; 

あなたはNSCalendarオブジェクト内のコンポーネントのパラメータを見ることができるようにビット賢明列挙型であり、あなたは「+」

を使用して列挙値はちょうど私がいたので、私が貢献するだろうと思っ組み合わせることができます例を使って私のものを作ることができます。

0

スウィフトバージョンのドキュメントへのリンクのための

func currentHour() -> Int { 
    let now = NSDate() 
    let calendar = NSCalendar.currentCalendar() 
    let components = calendar.components(.Hour, fromDate: now) 

    return components.hour 
} 
関連する問題