如何在没有日期的情况下在NSDate中存储时间?

时间:2011-06-01 06:27:39

标签: iphone objective-c nsdate

我的应用中有一个计时器。当我点击退出按钮然后计时器停止并以01:15:55的格式将值存储到字符串中。我有一个数组来存储这个字符串对象。

我想要的是,现在我想通过相互比较来显示这些值。所以我认为首先我必须将字符串转换为NSDate,但我只有时间格式而且不想存储日期。

我该如何完成这项任务?有什么建议吗?

已编辑:代码

NSInteger secondsSinceStart = (NSInteger)[[NSDate date] timeIntervalSinceDate:sDate]; // sDate = when app get started 

myAppDelegate.seconds = secondsSinceStart % 60;
myAppDelegate.minutes = (secondsSinceStart / 60) % 60;
myAppDelegate.hours = secondsSinceStart / (60 * 60);
NSString *result = nil;

if (myAppDelegate.hours > 0) 
{
    result = [NSString stringWithFormat:@"%02d:%02d:%02d", myAppDelegate.hours, myAppDelegate.minutes, myAppDelegate.seconds];
}
else 
{
    result = [NSString stringWithFormat:@"%02d:%02d", myAppDelegate.minutes, myAppDelegate.seconds];        
}

NSString *tempDateString = [NSString stringWithFormat:@"%d:%d:%d",[myAppDelegate hours],[myAppDelegate minutes],[mogsApp seconds]];

现在我想将tempDateString转换为NSDate,这样我就可以与类似的对象进行比较。可能吗 ?

...谢谢

2 个答案:

答案 0 :(得分:4)

听起来像NSTimeInterval可能更合适。这只是一个浮点值,表示秒数(包括小数秒)。您可以使用一些简单的除法和余数数学手动将这样的值格式化为您想要的任何字符串格式。 (NSDate将为您提供自参考日期或其他日期以来的时间间隔(如果您想使用它们来获取值)。如果需要,您可以将NSTimeIntervals存储为字符串。

答案 1 :(得分:2)

当仅存储日期/时间(或时间跨度)的部分时,

NSDateComponents总是一个不错的选择。

它还使您可以通过NSCalendar轻松访问时间管理方法。然后(与使用NSTimeInterval不同),您不必自己设置任何数学,它将全部自动本地化。