将float转换为NSDate

时间:2009-05-09 23:54:07

标签: objective-c nsdate

我想将float转换为NSDate

我使用以下方法将NSDate转换为浮点数:

// Turn the date into Integers 
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
NSCalendarUnit unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;  
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:nsdate_wakeTime];  
NSInteger hour = [dateComponents hour];  
NSInteger min = [dateComponents minute];  

//Convert the time in 24:60 to x.x format.
float myTime = hour + min/60; 

在我对mytime变量进行一些数学操作之后,我会以相同的浮点格式获得其他一些数据。

如何将浮动转换为NSDate?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您将计算的时间转换为秒(因此,mytime * 60),那么您可以使用dateWithTimeIntervalSinceReferenceDate:返回NSDate。从您正在进行的数学运算来看,这里的引用日期似乎是当天的00:00。正如Jason所提到的那样,可能有更好的方法来完成你想要完成的任务。

此外,如果您真的想要分钟,则需要将“myTime”计算更改为除以60.0;您的示例代码将小于60的整数值除以整数值60,该值始终为0.