2
 NSDate *newDate=[newDate dateByAddingTimeInterval:difference];

ここで、このnewDateをNStimeIntervalに変換します。

この変換を行うにはどうすればよいですか?

4

3 に答える 3

12

NDDateとは2つの異なるものであり、aをaに、またはその逆にNSTimeInterval変換することはできません。NSDateNSTimeInterval

NSDate絶対日付をNSTimeInterval表し、2つの日付の間の時間を表します。

ただし、次のメソッドを使用して、参照日からNSTimeIntervalを作成できます。

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate

あなたはこのようにそれを行うことができます:

NSDate *referenceDate = /* Your reference date */
NSDate *date = /* Your date */
NSTimeInterval timeInterval = [date timeIntervalSinceDate:referenceDate];
于 2012-07-19T12:29:27.070 に答える
2

上記のコメントで述べたように、NSTimeInterval2つの時点(つまり2つのNSDateインスタンス)間の距離であるため、何を表現するかを知る必要があります。

newDateグリニッジ標準時2001年1月1日から1月1日までの時間を表す場合は、次を使用できます。

- (NSTimeInterval)timeIntervalSinceReferenceDate;

参照)。

ただし、別の参照日からの時間を表す場合は、その参照日をNSDateオブジェクトとして作成し、次を使用する必要があります。

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate;

参照)。

于 2012-07-19T11:55:37.370 に答える
-1

少し短い:

NSDate *date = ...

NSTimeInterval interval = [date timeIntervalSinceReferenceDate];

そしてそれを取り戻すために:

date = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:timeInterval];
于 2015-02-17T08:58:40.913 に答える