If you are creating your own xml files then you dont need to make a correction for time zone do you? (At least, that is how it works for me using mc2xml). The grabber will be running locally, and should be outputting in local time aready. Be sure of course that your all your device times are set to the correct local time too (so that the red 'Now' line shows up in the correct place).
I am in France, but my setup is mainly for UK TV, using mc2xml and the Sky Digital BBC London ITV London (SAT) line up. I dont make any correction for time zone and everything works perfectly.
Here you can see part of the .xml file produced - mc2xml is automatically adding the +0200 time offset because it sees that my local computer time has an offset of UTC+2 (which will automatically become UTC+1 when daylight saving ends):
<programme start="20130913084500 +0200" stop="20130913091500 +0200" channel="I989.79.microsoft.com"> (NB: the start= 0845, stop=0915 is already the local time including the +0200)
Here is a sample of my command line for mc2xml:
mc2xml -c gb -g "SW1X 7LA" -s -0 -d 24 -U -F -D mc2xml.dat -C channel.chl -o EPG.xml
-c (country): GB, -g (postcode): London, -s (listings relative start time): 0 (0 = the same local time as when the grabber runs, but you can make it a +/- if you need to), -d (listings duration) 24
I only grab 24 hours worth of EPG to make the .xml file as small as possible. This makes loading super fast when entering TVGuide (especially on my aTV2 and iPad1). I have multiple devices all using the same .xml which is saved on a network drive.
I simply have a windows task setup on the main pc to run the grabber once per day at 4am - with such a small amount of data to grab, it only takes about 20 seconds to run, so its no big deal to run it every day.
Hope this helps