OpenBSD Set / Configure Time Zone

Posted on in Categories , last updated September 2, 2016

How do I configure or change the timezone under OpenBSD operating system?

All of the time zones OpenBSD supports are in the /usr/share/zoneinfo directory tree. You need to create a symlink to /etc/localtime file.

  1. /usr/share/zoneinfo - time zone information directory
  2. /etc/localtime - local time zone file
  3. /usr/share/zoneinfo/posixrules - used with POSIX-style TZ's (generally not required)
  4. /usr/share/zoneinfo/GMT - for UTC leap seconds

Here is my current timezone - set to Asia / Calcutta (GMT +5:30):
$ ls -l /etc/localtime
Sample output:

lrwxr-xr-x  1 root  wheel  33 Sep 19  2007 /etc/localtime -> /usr/share/zoneinfo/Asia/Calcutta

How do I change time zone?

You will see several subdirectories for various countries or continents, each containing either city names or local time zones.
# ls /usr/share/zoneinfo/
Sample output:

Africa     Atlantic   Canada     EST5EDT    Factory    GMT-0      Iceland    Japan      MST7MDT    Navajo     Portugal   UCT        WET        zone.tab
America    Australia  Chile      Egypt      GB         GMT0       Indian     Kwajalein  Mexico     PRC        ROC        US         Zulu
Antarctica Brazil     Cuba       Eire       GB-Eire    Greenwich  Iran       Libya      Mideast    PST8PDT    ROK        UTC        posix
Arctic     CET        EET        Etc        GMT        HST        Israel     MET        NZ         Pacific    Singapore  Universal  posixrules
Asia       CST6CDT    EST        Europe     GMT+0      Hongkong   Jamaica    MST        NZ-CHAT    Poland     Turkey     W-SU       right

Find the file for the time zone you like or for a city whose time zone you share. To set the time zone, just create a new symbolic link to the file from /etc/localtime.
# ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime
Verify new timezone with the date command:
$ date
Sample outputs:

Fri Sep  2 15:32:16 CDT 2016

zic command

You can also use the zic command. Y need to give the time zone as local time. zic will act as if the input contained a link line of the form:

Link timezone       posixrules

For example set timezone to America/New_York, enteR:
# zic -l America/New_York
# date

Sample outputs:

Fri Sep  2 16:34:20 EDT 2016

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

3 comment

Leave a Comment