I believe your setting
TZ=MST provides insufficient information for the
localtime function to determine the correct time zone offset. My understanding is that the
TZ setting must include the hours offset from UTC, and that the alphabetic designation you give it is merely for human convenience. So in your case, it would be
TZ=MST7 or, perhaps,
TZ=MST7MDT to account for the switch to daylight savings time.
Update: sporty's right -- I determined this only for Windows. My Linux box did just fine without the numeric offset. (Thanks for the info on /usr/share/zoneinfo.)