Конвертировать 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).
Заменить −
с -
и ваш код будет работать правильно.