2014-02-13 2 views
0

У меня есть строка Вт Фев 23 10:12:48 IST 2014, я хочу получить объект NSdate. Я использую ниже фрагмент кодаВременной зонд IST не получает разобранный

NSString * buildTime = @"Tue Feb 23 10:12:48 IST 2014"; 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"]; 
    NSDate *date = [formatter dateFromString:buildTime ]; 

Каждый раз, когда я получаю значение ноля для даты переменных. Если я изменю IST на GMT во время сборки, то NSDate отлично подходит. Может ли кто-нибудь исправить меня, где я ошибаюсь в этом.

+0

Попробуйте использовать 'VVV' вместо' ZZZ'. Я нашел еще одну запись, которая указала бы, что будет работать в часовом поясе «IST». – rmaddy

+0

Спасибо за быстрый ответ. Но VVV также не работает – ajay

ответ

1

Используйте маленький 'ZZZ' вместо 'ZZZ',

NSString * buildTime = @"Tue Feb 23 10:12:48 IST 2014"; 
NSLocale *indianEnglishLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_IN"]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setLocale:indianEnglishLocale]; 
[dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss zzz yyyy"]; 
NSDate *date = [dateFormatter dateFromString:buildTime]; 
NSLog(@"date %@",date); 
NSLog(@"string %@",[dateFormatter stringFromDate:date]); 
+0

хороший фрагмент кода; если вы хотите изменить timeZone, добавьте его после dateformatter, '[dateFormatter setTimeZone: [NSTimeZone timeZoneWithName: @ "GMT"]]; – Pawan

+0

Это прекрасно работает. Можете ли вы рассказать мне вместо IST завтра. PST подходит, каков будет параметр для initWithLocaleIdentifier :, Это только мой вопрос ... – ajay

+0

Вы можете попробовать исследования для PST - America/LA. проверьте идентификаторы локали, распечатав [NSLocale availableLocaleIdentifiers] и используйте соответствующие. – Dhawal

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