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.
>

Reply via email to