Advancing josch's answer; set the debconf db values and remove /etc/{localtime,timezone} before running dpkg-reconfigure:-
$ echo "tzdata tzdata/Areas select Europe" > some/file.txt
$ echo "tzdata tzdata/Zones/Europe select Berlin" >> some/file.txt
$ sudo debconf-set-selections some/file.txt
$ sudo rm /etc/timezone
$ sudo rm /etc/localtime
$ sudo dpkg-reconfigure -f noninteractive tzdata
Current default time zone: 'Europe/Berlin'
Local time is now: Thu Sep 1 17:13:16 CEST 2016.
Universal Time is now: Thu Sep 1 15:13:16 UTC 2016.
This method is known to work on:-
- Ubunty Trusty (14.04.5 LTS)