While converting the posixtime to datetime specify the TimeZone using name-value pair,If not specified the posix times are considered as UTC times due to which you are not getting correct results.
z = datetime(p, 'ConvertFrom', 'posixtime', 'TimeZone','Europe/London');
Best Answer