Time Zones with GPS?

I am making a GPS tracker that has an SD card and display that displays stuff like the time, date, lat, long, fix, etc.
However, I am haveing trouble with the part with 12 hour time and date timezones. I am 7 hours behind international GPS time and I can't seem to figure out how to change the time and date to this timezone. Does anyone know of a library hat does this or have a section of code that could help me?

The whole Arduino site seems to be this way and I don't know why.

What way?

Why not just subtract 7 if the time is greater than 0700? If less than 7, subtract the time from 24 and back up a day.

GPS time is usually 24 hour time. If you have 12 hr with AM & PM, you could convert to 24 hour time first (PM time just 12 to the time) and then do the subtraction. Only AM time would have the rolling back a day issue.

Your GPS should be reporting in UTC and 24 hour time. If it's not then either your GPS has been configured not to or you're using a library that is converting it to a time zone behind the scenes.

Handle time zones and daylight savings time in one fell swoop:

NeoGPS has a timezone example here.

Cheers,
/dev