After reading all the documents at Apple Website and couple of other resources I am not sure why the expiration time is just 8 hours ahead of purchase time for a yearly subscription.
Here is what the app receipt info is returning in lates_receipt_info Array.
"latest_receipt_info" = (
{
"expires_date" = "2018-04-28 16:33:20 Etc/GMT";
"expires_date_ms" = 1524933200000;
"expires_date_pst" = "2018-04-28 09:33:20 America/Los_Angeles";
"is_in_intro_offer_period" = false;
"is_trial_period" = true;
"original_purchase_date" = "2018-04-28 15:33:21 Etc/GMT";
"original_purchase_date_ms" = 1524929601000;
"original_purchase_date_pst" = "2018-04-28 08:33:21 America/Los_Angeles";
"original_transaction_id" = 1000000394415263;
"product_id" = "com.myapp.yearly";
"purchase_date" = "2018-04-28 15:33:20 Etc/GMT";
"purchase_date_ms" = 1524929600000;
"purchase_date_pst" = "2018-04-28 08:33:20 America/Los_Angeles";
quantity = 1;
"transaction_id" = 1000000394415263;
"web_order_line_item_id" = 1000000038589890;
}
);
The purpose is obviously to validate the subscription for reasons such as user cancelled the subscription or it cannot be renewed by any other circumstances.
Although I can validate this on every app launch but it is required that if user has purchased a subscription on iOS platform then he/she can access premium content on other platforms such as Web.