Проблема с форматом даты iOS в квитанции приложения

Я анализирую JSON, возвращенный из App Store при проверке квитанции.

Одно из общедоступных полей — original_purchase_date. Однако возвращаемая здесь дата имеет формат «2014-05-30 14:05:51 Etc/GMT». Проблема в том, что когда я пытаюсь сравнить это, кажется, что суффикс (Etc/GMT) вызывает проблемы. Я пытаюсь понять, как с этим справиться, так как этот суффикс может быть любым часовым поясом (скажем, America/Los_Angeles или что-то еще).

Есть ли способ преобразовать это в пригодный для использования формат?

Я знаю, что в квитанции также есть поле original_purchase_date_ms, которое равно секундам с 1970 года, я подозреваю, однако, это частное поле (не вызывается ни в каких документах), поэтому я не хочу полагаться на его использование, только чтобы найти приложение отклонено, или позже Apple удалит это поле!

Заранее спасибо.


person NeilMortonNet    schedule 06.06.2014    source источник
comment
обрезать строку и удалить из нее Etc/GMT. затем используйте обычный форматировщик даты и получите свой NSDate   -  person Sam B    schedule 06.06.2014
comment
@SamBudda Хорошая идея! Спасибо!   -  person NeilMortonNet    schedule 06.06.2014


Ответы (1)


Образец кода:

NSString *oldDateStr = [NSString stringWithFormat: @"2014-05-30 14:05:51 Etc/GMT"];
NSString *newDateStr = [oldDateStr stringByReplacingOccurrencesOfString:@"Etc/GMT" withString:@""];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date1 = [dateFormat dateFromString:newDateStr];
person Sam B    schedule 06.06.2014
comment
Это не удастся, если часовой пояс изменится. Как 2016-09-29 23:34:34 America/Los_Angeles". Вместо этого используйте формат даты "yyyy-MM-dd HH:mm:ss VV". - person TheTiger; 07.10.2016
comment
Может быть, вы могли бы попробовать наоборот и просто оставить первые 19 символов. - person Oliver; 16.09.2018