Временная зона в Linux задается файлом
   /etc/localtime

Этот  файл  является  симлинком  на  один  из  готовых описаний
временной зоны, немерянное количество которых лежит в
 /usr/lib/zoneinfo

Например для Москвы подойдет такая операция:
 ln -s /usr/lib/zoneinfo/Europe/Moscow /etc/localtime

Файл с описанием временной зоны компилируется из текстового описания
командой zic  (См.   man zic )

Пример описания временной зоны с переключением на летнее время для Украины:
------------ Cut here ------------------------------
Rule dst 1982 maximum - Apr lastSun 2:00 1 "EET DST"
Rule dst 1982 maximum - Oct lastSun 2:00 0  EET
Zone EET 2:00 dst %s
------------ Eof here ------------------------------

  Во Free случай абсолютно аналогичный.
Например поправить /usr/src/share/zoneinfo/europe

Rule    Russia  198?    max     -       Sep     lastSun  2:00s  0       K
Rule    Russia  1996    max     -       Oct     lastSun  2:00s  0       K

 Затем в той-же директории make install (там этот zic и запускается).



Если файл временной зоны не собран, то можно ее задать переменой TZ.

export TZ=GMT0BST-1;87/01:00:00,297/02:00:00

Установить  GMT, вычесть 1 час, затем добавить 1 или 2 в зависимости от дня.
87 и 297 - дни перехода на летнее время и обратно.

Last-modified: Fri, 26 Jul 2002 06:33:10 GMT