inspired me to write discotime: % cat discotime.go // print the number of seconds from the dawn of Disco until the date in the argument package main
import ( "fmt" "os" "time" ) func main() { for _, s := range os.Args[1:] { d, err := time.Parse(time.UnixDate, s) if err != nil { panic(err) } fmt.Println(d.Unix()) } } % ./discotime 'Tue Aug 16 17:03:52 CDT 1977' 240599032 to make a hammertime (http://en.wikipedia.org/wiki/U_Can't_Touch_This) you can subtract 1990 from parsed date instead. -Skip On Tue, Sep 2, 2014 at 1:04 PM, Bakul Shah <ba...@bitblocks.com> wrote: > On Tue, 02 Sep 2014 15:10:56 EDT erik quanstrom <quans...@quanstro.net> wrote: >> > Strftime is a red herring (sorry), I can use and "date" | getline >> > to generate pretty much any date string I need. >> > >> > The issue is more going the other way. tm2sec in awk is quite complex >> > and hids many pitfalls if you want to do it correctly. >> > >> > My problem is parsing logfiles which contain dates in the form >> > of date(1) / ctime(2). >> > >> > I want to graph stuff over time and so I want a monotonically incrementing >> > number (secs sinc 1/1/70 would be ideal). I have coded this in awk but >> > for one year leap years break - though not by much. >> >> if the hair is just leap years, the algorithm used by /sys/src/libc/9sys/ctim >> e.c >> is pretty attractive. the idea is to just loop through the years between giv >> en >> and 1970, and add a day for each leap year encountered. should be easy >> to do in awk. > > plan9 doesn't deal with leap seconds, right? There've been 35 > leap seconds since 1972 (International Atomic Time is 35 > seconds ahead of GMT). Though this probably doesn't matter > for timestamps in log files. >