我有一个从xml提要传递的NSString ........
NSString *strDate =@"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 =@"2010-04-10 14:00:00 +0530";
有人可以帮我这个吗?......
对不起。这是我的错。它应该是这样的。
NSString *strDate =@"Thu, 22 Apr 2010 10:30 am CEST";
我的要求是使用NSDateFormatter仅从上面的字符串获取小时部分。我怎样才能做到这一点。对不起以前的错误。
感谢。
答案 0 :(得分: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
答案 1 :(得分:0)
你想这样做:
NSString *strDate =@"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位,因为这会导致您的时区被更改
答案 2 :(得分:0)
更改为
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh.mm a vvvv"];
(。而不是:in hh:mm)