Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to set my timezone to America/New_York. date says that the current time is CEST. I'm using systemd, no desktop environment.

Right now I have

/etc/localtime links to /usr/share/zoneinfo/America/New_York
/etc/timezone set to "America/New_York"
/etc/rc.conf set to "America/New_York" (arch linux should be ignored by systemd)
$TZ is unset

Hardware clock is set to utc time and works fine.

TZ=utc date

gives the right output.

Unfortunately I'm still on CEST. Am I missing something?

share|improve this question
up vote 1 down vote accepted

Looks like /usr/share/zoneinfo/America/New_York has incorrect content.

Try issuing zdump America/New_York or TZ=America/New_York date

share|improve this answer
[root@jupiter etc]# zdump /usr/share/zoneinfo/America/New_York /usr/share/zoneinfo/America/New_York Tue Jul 3 19:20:40 2012 CEST Seems you're right ... – McEnroe Jul 3 '12 at 17:21
And I fixed it by re-installing tzdata. No idea how this could have happened. A corrupt file was the last thing I expected. Thanks! – McEnroe Jul 3 '12 at 17:24
@McEnroe, That's why I would advice against symlinking to /usr/share/zoneinfo/. Actually, previously there was also such a reason due to problems with separate /usr partition layout making the link dangling until it got mounted finally during boot. Another one, as your issue shows is overwriting /etc/localtime would muck up original file as well. So, it's better to cp not ln – poige Jul 3 '12 at 17:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.