Something seemed to be wrong with /etc/localtime in my case.
The following solved the problem on my feisty machine:
sudo cp /etc/localtime /etc/localtime.bak
sudo ln -s -f /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
Note however that my old /etc/localtime is binary identical to /usr/share/zoneinfo/Europe/Amsterdam. So it looks to me like Java expects to find a symbolic link here, and the time zone detection fails if Java encounters a regular file instead of the link.