Can anyone point me in the right direction for how to convert GMT to a user defined local time?

In my circumstances I am downloading the GMT network time using an ESP8266 (very slick module, by the way). I then successfully store the GMT time in a DS1307 RTC. Ok, works well.

Now I need to convert GMT to local time. I am making a large (10cm) 4 digit LED display into a clock (don't we all make some kind of clock at some point in our quests?).

I am using:
  • Pic Basic Pro version 3,
  • PIC16F886,
  • DS1307 (and PCF8583),
  • ESP8266
I guess what I am thinking is that one would store the following parameters in the RTC EPROM storage:
  • TimeZone name
  • DST start date
  • DST end date
  • DST offset in minutes
The time would be updated about every 10 minutes using the ESP8266 and writing to the RTC as GMT. Example string from ESP8266 is:

15 Jul 2015 13:15:00 GMT

I have already figured out how to read the string, convert the GMT string to the necessary DS1307 BCD numbers and upload it to the RTC via I2C. My next task is to call ClockGetLocal and have it store the local time in the ClkMin, ClkHrs, etc variables.