Lloyd Rochester's Geek Blog

Unix Command for Epoch Time

This post provides some examples using the Unix date(1) command to interact with Epoch Time. We commonly need to print or parse the Epoch.

Table of Contents

Print the Epoch

Using the Unix date command we can print the Epoch. We need to use the %s format.

$ date +%s
1644156059

The %s format is seconds since the Epoch (1970-01-01 00:00 UTC). The Epoch is always in the UTC or Zulu time zone.

Parsing the Epoch

If we have an Epoch Time and want to parse it we can use the date command. This will NOT work in Mac OS X.

$ date --date='@1644156059'
Sun Feb  6 02:00:59 PM UTC 2022
$ date -d='@1644156059' # shorter argument
Sun Feb  6 02:00:59 PM UTC 2022
$ date +%F --date='@1644156059' # also format to a new time
2022-02-06
$ TZ='America/Denver' date --date='@1644156059' # timezone conversion
Sun Feb  6 07:00:59 AM MST 2022

Parse the Epoch in Mac OS X

In Mac OS X we can parse the Epoch as follows.

$ date -ur 1644156059
Sun Feb  6 14:00:59 UTC 2022
$ date -r 1644156059 # for local time
Sun Feb  6 07:00:59 MST 2022
date -r 1644156059 +%F # without default format
2022-02-06

Print the current time in UTC

With the -u or --utc option we can print the date in UTC.

$ date -u
Sun Feb  6 02:13:01 PM UTC 2022

Print the Epoch with Bash

If you have bash version 5 or higher the environment variable EPOCHSECONDS contains the value of the Epoch.

$ echo $EPOCHSECONDS
1644156059