как хранить время в NSDate без даты? - PullRequest
1 голос
/ 01 июня 2011

У меня есть таймер в моем приложении. Когда я нажимаю кнопку выхода, таймер останавливается и сохраняет значение в строку в формате 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 ]

4 голосов
/ 01 июня 2011

Звучит как NSTimeInterval, может быть более подходящим. Это просто значение с плавающей точкой, указывающее количество секунд (включая дробные секунды). Вы можете вручную отформатировать значение, подобное этому, в любой формат строки, какой захотите, с помощью простого деления и остаточной математики. (NSDate даст вам временные интервалы с контрольной даты или других дат, если вы хотите использовать их для получения значений.) При необходимости вы можете сохранить NSTimeIntervals в виде строк.

2 голосов
/ 02 ноября 2011

NSDateComponents - это всегда хороший выбор для хранения только частей даты / времени (или временного интервала).

Это также дает вам легкий доступ к методам управления временем с помощью NSCalendar.Затем (в отличие от использования NSTimeInterval) вам не нужно самостоятельно настраивать математические операции, и все они будут автоматически локализованы.

...