Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
#1

Магия с NSDateFormatter - Программирование iOS

19.02.2015, 13:12. Просмотров 687. Ответов 2
Метки нет (Все метки)

Всем привет!

Со вчерашнего дня не могу побороть преобразование даты из строкового представления в NSDate.. Сто раз перепроверил по http://www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns и прочим источникам - не могу понять в чем проблема..

Дата приходит в формате "Tue, 26 Mar 2013 11:52:00 EDT". Пытаюсь преобразовать ее следующим образом:

Objective-C
1
2
3
4
5
    NSString *strDate = @"Tue, 26 Mar 2013 11:52:00 EDT";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];
    
    NSDate *date = [dateFormatter dateFromString:strDate];
На выходе все равно nil. Начал методом исключения уменьшать входную строку, и столкнулся с тем, что даже следующее преобразование не работает:
Objective-C
1
2
3
4
5
    NSString *strDate = @"Mar 2013 11:52:00";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MMM yyyy HH:mm:ss"];
    
    NSDate *date = [dateFormatter dateFromString:strDate];
Это вогнало меня в ступор(( Вроде бы куда уже проще?

Буду рад, если кто-то сможет указать мне на мои ошибки..
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2015, 13:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Магия с NSDateFormatter (Программирование iOS):

Магия - Delphi БД
Подскажите, у меня много вкладок и некоторые из них формируются динамически из SQL, но есть которые и через Delphi и вот прошло пол года и...

Магия ip - Сетевое оборудование
Здрасте ,О,Админы! Мой маленький мозг просить помощи у вас! В сети на некоторых машинах если адрес ip ниже 200 (192.168.1.44 к примеру)...

Магия с if..else - Python
Здравствуйте. Начал изучать питон, есть опыт программирования на других языках. Столкнулся с не понятной мне проблемой, укажите ошибку. ...

Магия OpenMP - C++
Есть такой код: Expr = ... // vector<pair<size_t, double>> #ifdef _OPENMP #pragma omp parallel num_threads( 2==(size_level-ptr) ? 1...

Массивы, магия - C++
Есть код: #include <iostream> #include <cstdlib> int main(void) { int yams; yams = 7; yams =...

Магия с ObservableCollection - C#
Добрый день. Такое дело, что пишу проект на WPF, но возникла проблемная ситуация с одной из коллекция ObsorvableCollection. У меня...

2
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
19.02.2015, 13:29 #2
попробуйте 'z' вместо 'ZZZ'
1
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
23.02.2015, 13:27  [ТС] #3
К сожалению тоже не помогло..

Добавлено через 35 минут
Решилось использованием категории для NSDataFormatter, где был следующий init + добавил у себя таки фикс, рекомендованый glvrzzz:
Objective-C
1
2
3
4
5
6
7
8
9
- (id)initWithSafeLocale {
    static NSLocale* en_US_POSIX = nil;
    self = [self init];
    if (en_US_POSIX == nil) {
        en_US_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    }
    [self setLocale:en_US_POSIX];
    return self;
}
Код взят с просторов интернета, еще не понял толком, в чем дело, но теперь все заработало.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2015, 13:27
Привет! Вот еще темы с ответами:

Магия со стилями - Ruby on Rails
заюзал я ботстрап. Магия первая: Не применяются стили. вроде все как в мануале, но стили не применяются. - if flash ...

Магия ComboBoxes - C#
Здравствуйте. на форме согласно таблице должно быть 2 comboboxa, проблема в том что 2 сразу работать не хотят. если...

Магия в lazarus - Lazarus
Интересные вещи происходят.. Люди, подскажите, пожалуйста, почему функция goal, а следовательно, и функция list_instruction в данном...

Что за магия? - Java SE
Integer i = 42; Integer j = 42; System.out.println(i + " = " + j + " : " + (i == j)); i = 142; j = 142; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.