如果你只需要几秒钟,那么使用
NSTimeInterval dateInterval = [date timeIntervalSince1970];
然后
NSString secondsString = [NSString stringWithFormat: @"%.0f", dateInterval];
编辑:
如果您有一个充满日期字符串的文件,看起来像您的示例 2015-23-02-12-23,那么您可以使用如下代码:
NSDateFormatter *myFormatter = [[NSDateFormatter alloc] init];
[myFormatter setDateFormat:@"yyyy-mm-dd-hh-mm-ss"];
//an example - you'll read from your file
NSString *aDateString = @"2015-23-02-12-23";
NSDate aDate = [myFormatter dateFromString: aDateString];
NSTimeInterval dateSeconds = [aDate timeIntervalSince1970];
这将为您提供 dateSeconds 作为双精度浮点数,这是数字日期计算的标准,因为它处理秒的小数部分。然后,您可以对日期的时间间隔进行数字比较。
请注意,大多数 UNIX 系统使用 timeIntervalSince1970 方法返回的数值,但 Mac 和 iOS 使用 timeIntervalSinceReferenceDate 方法返回的数值日期值。这两种方法有不同的“纪元日期”,或者说它们从零开始计数的日期。
timeIntervalSince1970 uses midnight on Jan 1, 1970 (GMT)
timeIntervalSinceReferenceDate uses midnight on Jan 1, 2001 (GMT)
您使用哪种方法取决于您,请确保在所有情况下都使用相同的方法。
顺便说一句,您的日期字符串格式很糟糕。将所有这些 2 位数字用破折号分隔并不能让读者有任何方法来区分月/日/小时/分钟/秒。都是一团乱麻。最好使用标准日期格式。
在美国,日期通常以 mm/dd/yyyyy(或 yyyy/mm/dd,甚至 yyyy/dd/mm)的形式显示,时间以 hh:mm:ss 的形式显示,因此在“mm/ dd/yyyyy hh:mm:ss" 格式你会得到:"09/02/2015 13:09:39" (我使用人类可读的日期格式字符串进行讨论,而不是那些旨在设置日期格式化程序的字符串.)