I'm setting timezone GMT+6 on my Linux machine by copying the zoneinfo file to /etc/localtime, but the date command is showing the time UTCtime-6. What is the reason for this behaviour?

I'm assuming the date command should display UTCtime+6 time. Here are steps I'm following:

Wed Jan 22 17:29:01 IST 2014

date -u
Wed Jan 22 11:59:01 UTC 2014

cp /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime

Wed Jan 22 05:59:21 GMT+6 2014

date -u
Wed Jan 22 11:59:01 UTC 2014

migrated from stackoverflow.com Mar 7 '14 at 15:34

This question came from our site for professional and enthusiast programmers.

  • The date shows GMT+6, the same zone as the zone you copied to /etc/localtime. – mockinterface Jan 22 '14 at 12:13
  • @mockinterface: You are right but why date command is showing time less then UTC time? – Rahul R Dhobi Jan 22 '14 at 12:17
  • I think you need to clarify your question. It has the entire set of IST/GMT+6/UTC-6/UTC+6 time zones mentioned plus the two date commands that you refer to as "a date command" - please be exact. – mockinterface Jan 22 '14 at 12:27
  • I think it's clear enough. OP has India standard time set, and it's 17:29 in India which means it's 11:59 UTC. then OP changes just the time zone by that cp command; the UTC isn't affected (as we can see), but the localized time now is 5:59 GMT+6 although it should be 17:59 GMT+6. – Alfe Jan 22 '14 at 13:30
  • 1
    This Q was cross posted on U&L as well: unix.stackexchange.com/questions/110522/… – slm Jan 23 '14 at 7:43

Zones like Etc/GMT+6 are intentionally reversed for backwards compatibility with POSIX standards. See the comments on Wikipedia, and in this file from the tzdb.

You should almost never need to use these zones. Instead you should be using a fully named time zone like America/New_York or Europe/London or whatever is appropriate for your location. Refer to the List of tz database time zones on Wikipedia.

  • Thanks for your answer but I'm using GMT+ format in my embedded system and found this type of behavior – Rahul R Dhobi Jan 23 '14 at 5:44
  • I'm not sure what you're getting at. You asked why it was reversed, and this is why. – Matt Johnson Jan 23 '14 at 5:51
  • 3
    A time zone is not the same thing as a time zone offset. You aren't just setting +6, you're setting Etc/GMT+6 which is a very specific entry in the zoneinfo data which means "6 hours West of GMT", which in common usage is -6. If you really want +6 then you should set a zone like Etc/GMT-6, or you can use a named zone that has a +6 offset. See also the timezone tag wiki. – Matt Johnson Jan 23 '14 at 5:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy