我有两个格式的时间值:%H%M%S (EG161500)
这些值是基于文本的整数。
Cocoa 中是否有一个简单的函数可以使用 60 秒和分钟的刻度来计算这两个整数之间的差异?
因此,如果
time 1 = 161500
time 2 = 171500
timedifference = 003000
我有两个格式的时间值:%H%M%S (EG161500)
这些值是基于文本的整数。
Cocoa 中是否有一个简单的函数可以使用 60 秒和分钟的刻度来计算这两个整数之间的差异?
因此,如果
time 1 = 161500
time 2 = 171500
timedifference = 003000
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HHmmss"];
NSDate *date1 = [dateFormatter dateFromString:@"161500"];
NSDate *date2 = [dateFormatter dateFromString:@"171500"];
NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // diff = 3600.0
操作日期的类是NSDate
. 获取时间间隔的方法是-timeIntervalSinceDate:
。结果是一个NSTimeInterval
值,它double
表示以秒为单位的时间间隔。
您可以从with创建一个NSDate
对象,前提是您的日期格式为2001-03-24 10:45:32 +0600。NSString
+dateWithString:
试试这个代码。
- (NSTimeInterval)intervalBetweenDate:(NSDate *)dt1 andDate:(NSDate *)dt2 {
NSTimeInterval interval = [dt2 timeIntervalSinceDate:dt1];
NSLog(@"%f",interval);
return interval;
}
我将创建一个 NSFormatter 子类来从输入数据中解析该格式的时间值(您可以将一个放在文本字段上以自动转换用户输入,或使用它从代码中的数据源解析)。让它返回组合的秒数作为包裹在 NSNumber 中的 NSTimeInterval(双表示秒)。从那里很容易减去差异,并使用您创建的相同 NSFormatter 类显示它。在解析和显示值时,您是负责编写从秒转换为小时:分钟:秒或您喜欢的任何格式的代码的人。如果对您的应用程序有意义,您还可以将这些值转换为像 mouviciel 提到的 NSDate。请记住,您将始终存储与参考日期的时差,