01 Jan 1970 is epoch or Unix time or posix time start date, its similar to Before Christ(BC) and After Death(AD). This is the time elapsed from Midnight Jan 01 1970 in UTC time when Unix I is first invented.  The Unix time is zero at this time and it start ticking from that time to till date in seconds. So our Linux machines too kept this as standard time for them. Present Unix time in my system is 1307342993.Which are no of seconds from 12AM 01 Jan 1970 UTC(Coordinated Universal Time).

Where is this Unix time used?

In many places in Linux such as..

  1. In Shadow file for checking user expiry times, password reset times etc for user management in Linux/Unix.
  2. In Log files

FAQ:

How to get present Unix time?

date +%s

How to get Unix time for a date?. For example I want Unix time for 2009-01-01

39*365*24*60*60=892,944,000

How to get today's date?

date

I know Unix time, how can I convert this Unix time to the equivalent date?

date -d @epochtime
example
date -d @1307343577

Output

Mon Jun  6 12:29:37 IST 2011

In my shadow file in the 3rd field it's giving last password change date as 14969, how can i change it to actual date of password change for that user?

date -d @$((86400*14969)) +"%d-%m-%Y %T"
Output
26-12-2010 05:30:00

Let me explain this command

we are converting no of days(14969) to seconds(day =60*60*24=86400), then w are asking date command to give output of date in d-m-y s format.