NSDateFormatter часовой пояс (Etc / GMT) не анализируется для dateFromString - PullRequest
4 голосов
/ 11 июля 2011

Я получаю ноль за попытку преобразовать это 2011-07-11 13:28:59 Etc/GMT в NSDate с помощью следующего кода

NSString *dateString=@"2011-07-11 13:28:59 Etc/GMT";
NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd hh:mm:ss z"];
NSDate *purchaseDate = [dateformatter dateFromString:dateString];

Эта дата исходит от самого сервера Apple для проверки покупки в приложении. Я много рассказал о часовом поясе. но ни один из них не показывает, как конвертировать это Etc/GMT

Я пытался z zz zzz zzzz Z ZZ ZZZ ZZZZ

в чем может быть проблема здесь.

Ответы [ 3 ]

11 голосов
/ 15 августа 2016

Правильным dateFormat является yyyy-MM-dd HH:mm:ss VV, который вы должны использовать для решения вашей проблемы.

6 голосов
/ 22 января 2016

// Swift Version

    let DateString = "2016-01-21 00:29:09 Etc/GMT"
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss VV"
    var dateObject = dateFormatter.date(from: DateString)
3 голосов
/ 11 июля 2011
NSString *dateString=@"2011-07-11 13:28:59 Etc/GMT";
dateString = [dateString stringByReplacingOccurrencesOfString:@"Etc/GMT" withString:@"GMT"];
NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];

// Or stuff....>>

NSDate *date = [dateformatter dateFromString: dateString];
NSLog(@"You may Need This  =========%@",date);
dateformatter = [[[NSDateFormatter alloc] init] autorelease];
[dateformatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];

NSString *convertedString = [dateformatter stringFromDate:date];
NSLog(@"Converted String : %@",convertedString);

/// может помочь ===== >> http://unicode.org/reports/tr35/

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