2010-04-22 3 views
0

У меня есть NSString, который передается от корма XML ........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 из 10:30 (если его ур требование), то вы можете сделать это:

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); 

(Во-первых, ваш оригинальный форматировщик был неправ, вы имели:. Вместо) EDIT уже не в случае

Во-вторых, вы хотите игнорировать CEST бит, так как это приведет к тому, часовой пояс меняется

+0

Привет, Я sorry.It в мой mistake.It должно быть. NSString * strDate = @ "Чт, 22 апр 2010 10:30 утра CEST"; –

+0

Какое мое требование состоит в том, чтобы получить часовую часть только со строки выше, используя NSDateFormatter. Как я могу это достичь. Извините за предыдущую ошибку. –

+0

Мой код У вас есть час. Вы даже пробовали? – pheelicks

0

изменение

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

(. вместо: чч: мм)

+0

Привет, Прошу прощения. Это моя ошибка. Это должно быть так. NSString * strDate = @ "Чт, 22 апр 2010 10:30 утра CEST"; –

+0

Какое мое требование состоит в том, чтобы получить часовую часть только сверху строки, используя NSDateFormatter. Как я могу это достичь. Извините за предыдущую ошибку. –

Смежные вопросы