2010-04-22 62 views
0

我这是从XML提要通过了的NSString ........NSDateFormatter不正确转换

NSString *strDate [email protected]"Thu, 22 Apr 2010 10.30 am CEST"; 
我目前使用此代码格式化日期

..... ...

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm a vvvv"]; 
    NSDate *myDate = [dateFormatter dateFromString:date]; 
    [dateFormatter setDateFormat:@"HH"]; 
    NSLog(@"%@", [dateFormatter stringFromDate:myDate]); 

我想格式化我的字符串只显示小时,目前我得到像这样的价值。

strDate [email protected]"2010-04-10 14:00:00 +0530"; 

任何人都可以请帮我吗?......


我sorry.It的我mistake.It应该是这样的。

NSString *strDate [email protected]"Thu, 22 Apr 2010 10:30 am CEST"; 

我的要求是使用NSDateFormatter只从上面的字符串获得小时部分。我怎样才能做到这一点。对不起,以前的错误。

谢谢。

回答

1

如果你想获得的10:30的10(如果它的乌尔要求),那么你可以不喜欢它:

strDate = @"Thu, 22 Apr 2010 10:30 am CEST"; 
NSArray *dateComponents = [strDate componentsSeparatedByString:@" "]; 
NSString *requiredString = [dateComponents objectAtIndex:4]; 
dateComponents = [requiredString componentsSeparatedByString:@":"]; 
requiredString = [dateComponents objectAtIndex:0]; 

当你这样做:

NSLog(rquiredString); 

输出: 10;

这只是一个解决方法,对于更好的方法,您应该通过NSDateComponents类。

希望这有助于。

感谢,

Madhup

0

你想这样做:

NSString *strDate [email protected]"Thu, 22 Apr 2010 10:30 am CEST"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm a"]; 
NSDate *myDate = [dateFormatter dateFromString:strDate]; 
[dateFormatter setDateFormat:@"hh"]; 
strDate = [dateFormatter stringFromDate:myDate]; 
NSLog(@"%@", strDate); 

(首先你原来的格式是错误的,你有一个:代替)编辑不再是这种情况

其次,你要忽略CEST位,因为这会导致您的时区正在改变

+0

嗨, 我sorry.It的我mistake.It应该是这样的。 NSString * strDate = @“Thu,22 Apr 2010 10:30 am CEST”; – 2010-04-22 10:29:42

+0

我的要求是使用NSDateFormatter仅从上面的字符串获得小时部分。我怎样才能做到这一点。对不起,以前的错误。 – 2010-04-22 10:40:07

+0

我的代码能得到小时部分。你甚至尝试过吗? – pheelicks 2010-04-22 11:31:39

0

变化

[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh.mm a vvvv"]; 

(。而不是:在HH:MM)

+0

嗨, 对不起。这是我的错。它应该是这样的。 NSString * strDate = @“Thu,22 Apr 2010 10:30 am CEST”; – 2010-04-22 10:29:09

+0

我的要求是使用NSDateFormatter仅从上面的字符串获取小时部分。我怎样才能做到这一点。对不起,以前的错误。 – 2010-04-22 10:39:03