Convert date to epoch time using AWK in linux Convert date to epoch time using AWK in linux unix unix

Convert date to epoch time using AWK in linux


TZ=PST awk -F, '{split($1,date,"/");                 $1=mktime(date[3] " " date[1] " " date[2] " " "00 00 00");                 print}'

Or, invoking date:

TZ=PST awk -F, '{ OFS = FS;                  command="date -d" $1 " +%s";                  command | getline $1;                  close(command);                  print}'


On excel, say a1 has 1/30/2010. then have =(A1-DATE(1970,1,1))*86400 somewhere and then change number format to be General

Alternatively, I dont know awk, but with python, (fairly recent version is needed for .total_seconds())

import datetime as DTf = ['01/30/2010,1,"hi"','01/31/2010,3,"bye"',]e0 = DT.date(1970,1,1)for line in f:    mm,dd,yyyy=[int(x) for x in line[:2],line[3:5],line[6:10]]    e=int((DT.date(yyyy,mm,dd)-e0).total_seconds())    print str(e) + line[10:]


echo "2016-01-31 23:47:27" | awk -F, '{ OFS = FS;command="date -d " "\"" $1 "\""  " +%s";command | getline $1;close(command);print}'

We need to pass double quotes because we need to execute below:

date -d"2016-01-31 23:47:27" +%s