Проблема форматирования NSDate & NSString при использовании GData-Objectivec-client - PullRequest
0 голосов
/ 18 марта 2011

Я борюсь со странной ситуацией: один и тот же код работает по-разному в двух разных проектах.Один проект - просто пустая утилита командной строки с этим кодом.Второй проект связан со связанной библиотекой gdata -jectivec-client.

Вот код:

static NSString * const dateFormat = @"MM/dd/yyyy HH:mm:ss Z";
NSString *tmp_string = @"03/08/2011 10:07:36 +0300";

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease] ;    
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setDateFormat: dateFormat ];

NSDate *newDate = [dateFormatter dateFromString: tmp_string];
NSLog(@"dateFromThatString: %@", newDate);

В утилите командной строки результат такой же

"08.03.2011 10:07:36 +0300"

.

Но в проекте с привязанным к нему gdata-targetc-client результат меняется на

"08.03.2011 07:07:36 +0000"

Не могу найти, в чем проблема, какие-либо предложения?

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Читая об этом предмете, я узнал, что «NSDate не знает о часовых поясах, он всегда хранит даты независимо от часового пояса (как промежуток времени с определенной контрольной даты)», поэтому эти два объекта NSDateПредставление двух разных строк в двух разных проектах одинаково, есть только некоторая проблема в разнице между описанием объектов NSDate, так что ... это не большая проблема для будущей работы, потому что мне нужно это описание только для простой отладки.Я просто не буду использовать метод описания, но [NSFormatted stringFromDate:].

Интересно, как gdata -jectivec-client повлиял на проект, что описание nsdate obj возвращает то же время, но реагирует на смещение +0000 gmt.

Но это только для обсуждения.

0 голосов
/ 18 марта 2011

Похоже, что форматировщик даты имеет разные часовые пояса в каждом случае. Вы можете изменить часовой пояс, используя -[NSDateFormatter setTimeZone:].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...