Ответ 1
У вас есть проблемы с часовым поясом, и его можно решить, добавив эту строку кода:
formatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
если я попробую:
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyyMMdd"];
и
[formatter dateFromString:@"20120423"];
Мой новый объект NSDate будет: 2012 04 22. Почему на один день меньше?
Спасибо
У вас есть проблемы с часовым поясом, и его можно решить, добавив эту строку кода:
formatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
Для тех, кто ищет версию swift 3
let formatter = DateFormatter()
formatter.timezone = TimeZone(abbreviation: "GMT")
formatter.dateFormat = "yyyyMMdd"
formatter.date(from: "20120423")
Для одного лайнера с использованием Swift 3
Date.init(dateString: "2014-07-31", format: "yyyy-MM-dd", timeZone: TimeZone.init(abbreviation: "GMT")!)