[RndTbl] Convert time in seconds to date in bash?

John Lange john.lange at open-it.ca
Tue Dec 7 11:43:55 CST 2004


You know, that is strange.

The date command is amazingly flexible on what input it will accept but
I can't get it to convert a simple unixtime to a string.

Here are some examples:

$ date --date yesterday
Mon Dec  6 11:11:38 CST 2004
$ date --date "2 days ago"
Sun Dec  5 11:11:38 CST 2004
$ date --date "2 days"
Thu Dec  9 11:11:38 CST 2004
$ date --date "last year"
Sun Dec  7 11:11:38 CST 2003

$ date --date "1102439535"
date: invalid date `1102439535'

Weird eh?

Ok, but there is a solution:

Here is how you print epoc:

$ date -u --date "Jan 1, 1970 00:00:00" +%s
0

Now in our time zone:
$ date -u --date "Jan 1, 1970 00:00:00 +0600" +%s
-21600

So, 

$ date -u --date "Jan 1, 1970 00:00:00 +0600 + 1102439250 seconds"
Tue Dec  7 11:07:30 UTC 2004

Ya, that seems crazy complicated but its the only way I could get it to
work using strictly the bash command line.

Using further formating options would clean up the output including
correcting the timezone indicator.

Hope that helps.
-- 
John Lange
OpenIT ltd.
(204) 885 0872

On Tue, 2004-12-07 at 09:48, Kevin McGregor wrote:
> Does anyone know of a quick way to convert the Unix time (in seconds since Jan 1, 1970) to a readable date via bash and standard commands?
> 
> _______________________________________________
> Roundtable mailing list
> Roundtable at muug.mb.ca
> http://www.muug.mb.ca/mailman/listinfo/roundtable





More information about the Roundtable mailing list