Linux / UNIX: Convert Epoch Seconds To the Current Time

by on March 16, 2010 · 5 comments· LAST UPDATED March 26, 2010

in , ,

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.
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 5 comments… read them below or add one }

1 ian r March 26, 2010 at 1:56 pm

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

Reply

2 nixCraft March 26, 2010 at 3:18 pm

Thanks for the heads up!

Reply

3 Allan September 28, 2010 at 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

Reply

4 anu November 1, 2011 at 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

Reply

5 iddles June 29, 2012 at 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.

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: