- /** Got everything; let's go */
- /** First, change to UTC */
- if (getenv("TZ"))
- sprintf(tz, "TZ=%s", getenv("TZ"));
- else
- strcpy(tz, "TZ=");
- putenv("TZ=UTC");
+ /* Got everything; let's go. The global 'timezone' variable contains the
+ * local timezone's offset from UTC, in seconds, so we apply that to tm_sec.
+ * This produces an illegal value for tm_sec, but mktime() will normalize
+ * it for us. This eliminates the need to temporarily switch the environment
+ * variable TZ to UTC, which is good because it fails to switch back on
+ * some systems.
+ */