Monday, April 23, 2012

Linux / UNIX: TZ Environment Variable

What is the correct format for a TZ (time zone) environment variable for use with the Linux or UNIX operating system?

The format required for the TZ variable is specified by the operating system using system wide or user specific shell profile file. You can set the TZ and make this change permanent for yourself by appending the line to the file .profile in your home directory; then log out and log in again. In this example, I'm setting my TZ variable (timezone) to Indian standard time (IST) as follows:
 
TZ='Asia/Kolkata'
export TZ
 

Example

To display your current date & time, enter:
$ date
Sample outputs:
Sat Jan 29 06:21:38 EST 2011
The timezone is set to EST. To view exact details, enter:
$ cat /etc/sysconfig/clock
Sample outputs:
ZONE="America/New_York"
UTC=true
ARC=false
To set your timezone to IST, enter:
TZ='Asia/Kolkata'
export TZ
OR
export TZ='Asia/Kolkata'
To display date & time according to the TZ variable, enter:
$ date
Sample outputs:
Sat Jan 29 16:54:46 IST 2011

How Do I Make the TZ Changes Permanent?

Edit $HOME/.profile or $HOME/.bash_profile appending the line and then log out and log in again:
TZ='Asia/Kolkata'; export TZ

How Do I Set the Time Zone Using the Posix TZ Format?

You can use the following syntax:
TZ='POSIX-fomat'
export TZ
In this example, set TZ to GST-10 i.e. set it to a zone named GST that is 10 hours ahead (east) of UTC:
TZ='GST-10'
export TZ
date

How Do I Find Out and View the Installed Timezone under Linux or UNIX?

Many UNIX like operating systems ships with the tzselect utility to view the installed timezone. It comes handy when you want to know what time it is in other countries, or if you just wonder what timezones exist. tzselect is called without any parameters from the shell. It shows a list of about one dozen geographic areas one can roughly recognize as continents. After choosing a geographic area by number, a list of countries and cities in this area will be shown. You can press the [Enter] key to reprint the list. To choose a timezone, just press the number left to it. If your input is invalid, the list will be reprinted. You may press [CTRL] + [C] to interrupt the tzselect at any time.
$ tzselect
Sample outputs:
Fig.01: Setting the TZ variable with the tzselect utility
Fig.01: Setting the TZ variable with the tzselect utility

How Do I Change the Actual Timezone?

The tzselect command will not actually change the timezone for you. Use the redhat-config-date or setup command under RHEL / Fedora / Redhat / CentOS Linux to change the timzone:
# redhat-config-date
Use the dpkg-reconfigure tzdata command under Debian or Ubuntu Linux to achieve the same thing:
$ sudo dpkg-reconfigure tzdata
Under OpenBSD or FreeBSD operating system you can set the timezone by creating softlink to /etc/localtime file.

No comments:

Post a Comment