2015-08-07 4 views
0

Я хочу, чтобы преобразовать эту строку "Sat, 01 Aug 2015 21:03:59 GMT" для объекта NSDateУстановить формат даты Objective-C

Вот мой код

+(NSDate *)getDateFromDateString :(NSString *)dateString { 
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"E, dd MMM yyyy HH:mm:ss Z"]; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
return date;} 

но дата всегда равна нулю , Я думаю, что-то не так с форматом даты. Может кто-нибудь, пожалуйста, дайте мне совет?

+0

код правильный. Как вы называете этот метод? – vadian

+0

Вы уверены, что действительный NSString, который вы передаете методу? Не ноль? – joels

+0

yep, я уверен, что моя строка верна –

ответ

1

Спасибо за вашу поддержку, я нашел ответ. Нужно объявить локали

[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

+0

Да, без этого вы можете получить правильный результат от симулятора, но не обязательно реального устройства. – Qiulang

0

Обычно это, как я бы вызвать функцию полезности:

DateHelperClass.h

+ (NSDate *)getDateFromDateString :(NSString *)dateString; 

DateHelperClass.m

+ (NSDate *)getDateFromDateString :(NSString *)dateString 
{ 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"]; 
    NSDate *date = [dateFormatter dateFromString:dateString]; 
    return date; 
} 

SomeOtherClass.m

#import "DateHelperClass.h" 

- (void)convertDate 
{ 
    NSLog(@"%@",[DateHelperClass getDateFromDateString:@"Sat, 01 Aug 2015 21:03:59 GMT"]); 
} 

Результат:

2015-08-01 21:03:59 +0000

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