mjladd date915e4bd14 years agoHistory
47 lines · 888 B · Go
RawDownload
package main import (	"flag"	"fmt"	"os"	"strconv"	"time") var nflag = flag.Bool("n", false, "print as number of seconds since epoch")var uflag = flag.Bool("u", false, "print utc") func usage() {        fmt.Fprintf(os.Stderr, "usage: date [-un] [seconds]\n")        os.Exit(2)} func error(s string) {	fmt.Fprint(os.Stderr, s, "\n")	os.Exit(1)} func main() {	flag.Usage = usage	flag.Parse()	args := flag.Args()	var now time.Time	if len(args) == 0 {		now = time.Now()	} else if len(args) != 1 {		usage()	} else {		s, err := strconv.ParseInt(args[0], 0, 64)		if err != nil {			error(fmt.Sprint("bad number: ", err))		}		now = time.Unix(s, 0)	}	if *nflag {		fmt.Printf("%d\n", now.Unix())	} else if *uflag {		fmt.Printf("%s\n", now.UTC().Format("Mon Jan 2 15:04:05 MST 2006"))	} else {		fmt.Printf("%s\n", now.Format("Mon Jan 2 15:04:05 MST 2006"))	}}