Конвертировать NSString в NSDate с помощью форматера часового пояса UTC-5

У меня есть это NSDateFormatter:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"dd/MM/yyyy HH:mm:ss zzz"];

У меня есть эта строка:

NSString *geolocaliser=@"09/11/2014 03:03:20 UTC+1";

и я хочу преобразовать его в объект NSDate:

NSDate *lastLocatedUserDate =[formatter dateFromString:geolocaliser];

Вывод здесь идеален: lastLocatedUserDate=2014-11-09 02:03:20 +0000

Теперь, если у меня есть NSString:

NSString *geolocaliser=@"11/11/2014 12:07:40 UTC−5" ;

Я получаю нулевое значение: lastLocatedUserDate=(null)

Я думаю, что проблема в том, что UTC-5, но это не то же самое, что UTC+1?

Спасибо за помощь.

1 ответ

Решение

Оказывается, это очень неочевидная проблема.

Ваша строка @"11/11/2014 12:07:40 UTC−5" содержит недопустимый символ Кажущаяся черта в часовом поясе - это символ Unicode "ЗНАК МИНУС" (U+2212) вместо простого старого "ГИФЕН-МИНУС" (U+002D).

Заменить с - и ваш код будет работать правильно.

Другие вопросы по тегам