2014-06-06 2 views
1

Я разбираю JSON, возвращенный из App Store, при проверке квитанции.iOS Формат даты в приложении Получение приложения

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

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

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

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

+0

усечение строки и удалить "Etc/GMT" из него. затем используйте стандартный формат даты и получите свой NSDate –

+0

@SamBudda Хорошая идея! Благодаря! – MrNeilM

ответ

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]; 
+0

Это здорово! Большое спасибо. – MrNeilM

+1

Это произойдет, если часовой пояс изменится. Как '2016-09-29 23:34:34 America/Los_Angeles" '. Используйте вместо этого формат' 'yyyy-MM-dd HH: mm: ss VV ''. – TheTiger

Смежные вопросы