And*_*ndy 3 iphone objective-c
我有一个时间的字符串表示,如"11:13 AM".这是使用NSDateFormatter和stringFromDate:方法生成的.
我想将这个时间与当前时间进行比较,但是当我使用dateFromString:方法将字符串转换回日期时,会添加年,月和日 - 这是我不想要的.我只需要知道现在是否</>存储在字符串中的时间.
最好的办法是什么?在此先感谢您的帮助.
而不是使用字符串表示,使用从选择器获得的NSDate.您可以使用NSDateComponents转换该小时/分钟/秒,然后将[NSDate date]转换为NSDateComponents.比较两组组件的小时/分钟/秒.
编辑 - 使用实用程序功能,将NSDate的hr/min/sec组件转换为secondsOfTheDay(午夜后的秒数).
您可以直接使用两个时间值,因为它们都是午夜后的秒数.简单的整数可以很容易地进行比较,存储和操作.您不必一直使用NSDate.
//----------------------------------------------------------------------------
// extracts hour/minutes/seconds from NSDate, converts to seconds since midnight
//----------------------------------------------------------------------------
unsigned secondOfTheDay( NSDate* time )
{
NSCalendar* curCalendar = [NSCalendar currentCalendar];
const unsigned units = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents* comps = [curCalendar components:units fromDate:time];
int hour = [comps hour];
int min = [comps minute];
int sec = [comps second];
return ((hour * 60) + min) * 60 + sec;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2518 次 |
| 最近记录: |