≡ Menu

Linux / UNIX: Convert Epoch Seconds To the Current Time

How do I convert Epoch seconds to the current time under UNIX or Linux operating systems?

Unix time, or POSIX time, is a system for describing points in time, defined as the number of seconds elapsed since midnight proleptic Coordinated Universal Time (UTC) of January 1, 1970, not counting leap seconds.

Print Current UNIX Time

Type the following command to display the seconds since the epoch:

date +%s

Sample outputs:
1268727836

Convert Epoch To Current Time

Type the command:

date -d @Epoch
date -d @1268727836
date -d "1970-01-01 1268727836 sec GMT"

Sample outputs:

Tue Mar 16 13:53:56 IST 2010

Please note that @ feature only works with latest version of date (GNU coreutils v5.3.0+). To convert number of seconds back to a more readable form, use a command like this:

date -d @1268727836 +"%d-%m-%Y %T %z"

Sample outputs:

16-03-2010 13:53:56 +0530
WARNING! Note that the date and awk command syntax may not work on all versions of UNIX. Please refer to your local man page.

AWK Example

echo 1268727836 | awk '{print strftime("%c",$1)}'

Perl Example

perl -e "print scalar(localtime(1268727836))"

See also:

  • Refer to your local date, and awk command man or info pages.
Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:



{ 5 comments… add one }
  • ian r March 26, 2010, 1:56 pm

    don’t you need a final ‘ in your awk example above? ie:
    echo 1268727836 | awk ‘{print strftime(“%c”,$1)}’

  • Allan September 28, 2010, 4:23 am

    You can also run a while loop to read stuff with epoch time in it, example:

    while read b epoch therest ; do echo $b `date -d@$epoch` $therest; done

  • anu November 1, 2011, 5:29 pm

    Hi,

    Can you please tel me how to convert seconds into current date and time. shell script?

    date -d @ // getting error msg

    I am working on HP_UX

  • iddles June 29, 2012, 10:21 am

    How ridiculous that the date command could convert from local time format to epoch time, but not back the other way (except in newer versions). What an oversight. *n*x can boggle the mind at times.

    Even now the @1234567890 syntax isn’t even mentioned in the man page.

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , , , , , , , , , , , , , , ,