System time

The system time backed by the system clock is used in Unix systems to keep track of time. It can be set by a hardware clock or by an external time server.

Software clock vs Hardware clock
The system clock, provided by the kernel, is implemented as a simple count of the number of ticks that have transpired since the 1 January 1970 00:00:00 UT. This is called Unix time.

The hardware clock (also known as real-time clock or RTC) is typically a component on the mainboard. It runs independent of the state of the operating system all the time, also when the computer is shutdown.

UTC time vs localtime
You can decide which time standard the hardware clock is representing: localtime or UTC time. The localtime is the real time of your time zone including DST. Preferred is UTC time, because the system time gets computed by adding the time zone difference and DST. So daylight saving changes get automatically applied and changing the time zone are possible without changing the hardware clock. The exception can be, if you have a dual-boot system, and the other operating system does not support or is not configured for an UTC hardware clock (by default, Windows uses localtime).

Time zone
In order to keep time properly, you need to select your time zone so that your system knows where it is located.

OpenRC
Look for your time zone in. Please avoid the time zones as their names do not indicate the expected zones. For instance, is in fact GMT+8. For localtime select the "localtime" time zone.

You then set your time zone in, e.g. for Germany:

The information in this file is used by on each package update to copy the chosen zoneinfo file to. To setup this file out of order, run:

systemd
systemd comes with timedatectl to manage your time zone:


 * To check the current zone:


 * To list available zones:


 * To change your time zone, e.g. for Germany:

System clock
Typically the system clock time is setup by the hardware clock on boot. Alternatively use can manually set the system clock or use a time server.

With date you manage your system clock time:


 * To check the current software clock time:


 * To set the system clock, e.g. 12:30, Dec. 17, 2012:

Time server
See the NTP article.

systemd
systemd comes with timedatectl to manage your system clock time:


 * To check the current software clock time:


 * To set the system clock:

Hardware clock
Typically the hardware clock is used to setup the system clock on boot. This can be done by the kernel itself or by a boot service. On shutdown a service can sync the hardware clock with the software clock.

At runtime, to check the current hardware clock time:

To set the hardware clock to the current system clock:

Kernel
The kernel can write your NTP sync time to the hardware at shutdown, and read hardware clock at start. You need to activate the following kernel options:

OpenRC
The service hwclock setup the system clock on boot and sync the hardware clock on shutdown. The service is enabled by default.

By default the service is configured for UTC time standard. To change to localtime edit your :

systemd
systemd setup the system clock on boot. Also you can use timedatectl to manage the hardware clock:
 * To check the current hardware clock time:


 * To set the hardware clock to the current system clock (UTC time standard):


 * To set the hardware clock to the current system clock (localtime time standard):