[英]NSString to NSDate with float values
我正在開發OS X桌面應用程序,該應用程序將跟蹤賽車事件的時間。
飛行員之間的差異可能很小,因此每一圈收集到的數據都具有秒的浮點值:
bestLap = @"00:01:39.5930000"
但是我需要比較每個飛行員的時間並進行排序。 我正在嘗試使用NSDateFormatter將其轉換為NSDate對象,但我無法使其正常工作
是否可以將這樣的字符串轉換為NSDate? 如果是這樣,我如何比較和排序包含NSDates的數組
謝謝
NSDate用於表示日期 ,而不是時間間隔。
另外,如果僅是對它們進行排序,則無需將字符串轉換為NSDate或NSTimeInterval,因為如果時間間隔短於格式中的其他時間間隔,則已經按照字典順序對其進行了排序。
這意味着,調用-sortUsingSelector:
就足夠了。
[theMutableArrayOfLaps sortUsingSelector:@selector(compare:)];
正如KennyTM所說,如果您只需要訂購,按字典順序排序就足夠了。 如果您確實想要獲取用於比較和報告目的的數值,則可以將字符串分解為多個部分,然后轉換為類似以下內容的double
精度形式:
NSArray* parts = [bestLap componentsSeparatedByString:@":"];
double bestLapInSeconds = [[parts objectAtIndex:0] doubleValue] * 3600 // hours
+ [[parts objectAtIndex:1] doubleValue] * 60 // minutes
+ [[parts objectAtIndex:2] doubleValue]; // seconds
(請注意,這只是簡單地假設原始字符串符合“ H:M:S”格式,而沒有任何錯誤檢查。通常,您不應在現實生活中這樣做!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.