我正在制作一个iphone应用程序,我想在其中实现警报概念。我正在使用时间选择器,但我正在以这种格式获得时间 2011-08-17 17:00:45 +0530 。现在我想通过使用范围概念或任何其他概念来获得不同的小时,分钟和秒。我该怎么做。请帮帮我。
提前致谢。
答案 0 :(得分:1)
试试这个
NSDateFormatter *format = [[[NSDateFormatter alloc]init] autorelease];
[format setDateFormat:@"HH:mm:ss"];
NSString strTime = [NSString stringWithFormat:@"%@",[format stringFromDate:yourDate]];
然后将字符串分成组件:
NSArray *arr = [str componentSeparatedBy:@" "];
NSString *strHours = [arr objectAtIndex:0];
NSString *strMinutes = [arr objectAtIndex:1];
NSString *strSeconds = [arr objectAtIndex:2];
现在将小时和分钟转换为秒:
int iHours = [strHours intValue];
if(iHours>12) //Check for hour more than 12:00 eg 17:00
{
iHours = iHours - 12;
}
int iMinutes = [strMinutes intValue];
int iSeconds = [strSeconds intValue];
intTotalSeconds = (60*60*iHours) + (60*iMinutes) + iSeconds;
iTotalSeconds 是您需要的总秒数。
答案 1 :(得分:1)
如果要将String转换为NSDate,请使用:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc]init]
[format setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZZ"];
NSDate* foo = [dateFormatter dateFromString:yourDateString];
之后,您可以将NSDate转换为NSDateComponents,并从中获取秒,分钟等。
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:
(NSMinuteCalendarUnit|NSSecondCalendarUnit) fromDate:foo];
NSInteger second = [component second];
NSInteger minute = [component minute];
答案 2 :(得分:0)
要么进行@Nitish和@ cortez答案的混搭(使用一个DateFormatter来解析日期字符串,另一个用你喜欢的格式输出它),或者:
在项目中下载并添加RegexKitLite。
然后去:
#import "RegexKitLite.h"
NSString *timeString = @"2011-08-17 17:00:45 +0530";
NSString *regex = @"\d{2}:\d{2}:\d{2}";
NSString *timeComponent = [timeString stringByMatching:regex capture:1];