Cellular service tends to know your local time, whereas the actual time broadcast in the GPS signal is UTC (and then, your application needs to know how many leap seconds have been applied since the clock broadcast doesn't account for them - it's more accurate than the earth's rotation rate). THen, throw in that, especially in some parts of the USA, the time zone lines can wander, using the GPS time may not be the most reliable for actual local time (while quite accurate to the satellite's themselves). Right now, the internal clock time being reported verses the 'real' time is 16-seconds in advance of the satellite's clocks. IOW, your software needs to know and adjust for these, which average about every 1-2 years (the earth's rotation rate is slowing, and to keep 'noon' really noon, they adjust how many leap seconds are needed to make the displayed clock accurate verses the atomic clock in the satellites).
Probably more than you wanted to know...but, unless the gps application knows about this, the time displayed will be wrong, even if you tell it the right time zone.
BTW, there will be a leap second added on June 30, 2015 so if you're looking at a compatible clock, you'd see it count off as:
23h 59m 59s
23h 59m 60s
00h 00m 00s
This is only adjusted as needed, and if it is, it only occurs on one of two dates during a year: 31 December, or 30 June. IT could make celebrating new years off by a second!