NSDate *newDate=[newDate dateByAddingTimeInterval:difference];
ここで、このnewDateをNStimeIntervalに変換します。
この変換を行うにはどうすればよいですか?
NSDate *newDate=[newDate dateByAddingTimeInterval:difference];
ここで、このnewDateをNStimeIntervalに変換します。
この変換を行うにはどうすればよいですか?
NDDate
とは2つの異なるものであり、aをaに、またはその逆にNSTimeInterval
変換することはできません。NSDate
NSTimeInterval
NSDate
絶対日付をNSTimeInterval
表し、2つの日付の間の時間を表します。
ただし、次のメソッドを使用して、参照日からNSTimeIntervalを作成できます。
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate
あなたはこのようにそれを行うことができます:
NSDate *referenceDate = /* Your reference date */
NSDate *date = /* Your date */
NSTimeInterval timeInterval = [date timeIntervalSinceDate:referenceDate];
上記のコメントで述べたように、NSTimeInterval
2つの時点(つまり2つのNSDate
インスタンス)間の距離であるため、何を表現するかを知る必要があります。
newDate
グリニッジ標準時2001年1月1日から1月1日までの時間を表す場合は、次を使用できます。
- (NSTimeInterval)timeIntervalSinceReferenceDate;
(参照)。
ただし、別の参照日からの時間を表す場合は、その参照日をNSDate
オブジェクトとして作成し、次を使用する必要があります。
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate;
(参照)。
少し短い:
NSDate *date = ...
NSTimeInterval interval = [date timeIntervalSinceReferenceDate];
そしてそれを取り戻すために:
date = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:timeInterval];