如何从下面提到的格式中提取小时,分钟,秒

时间:2011-08-17 11:05:28

标签: iphone

我正在制作一个iphone应用程序,我想在其中实现警报概念。我正在使用时间选择器,但我正在以这种格式获得时间 2011-08-17 17:00:45 +0530 。现在我想通过使用范围概念或任何其他概念来获得不同的小时,分​​钟和秒。我该怎么做。请帮帮我。

提前致谢。

3 个答案:

答案 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];