xref: /plan9/sys/src/libventi/time.c (revision 368c31ab13393dea083228fdd1c3445076f83a4b)
1*368c31abSDavid du Colombier #include <u.h>
2*368c31abSDavid du Colombier #include <libc.h>
3*368c31abSDavid du Colombier #include <venti.h>
4*368c31abSDavid du Colombier 
5*368c31abSDavid du Colombier int
vttimefmt(Fmt * fmt)6*368c31abSDavid du Colombier vttimefmt(Fmt *fmt)
7*368c31abSDavid du Colombier {
8*368c31abSDavid du Colombier 	vlong ns;
9*368c31abSDavid du Colombier 	Tm tm;
10*368c31abSDavid du Colombier 
11*368c31abSDavid du Colombier 	if(fmt->flags&FmtLong){
12*368c31abSDavid du Colombier 		ns = nsec();
13*368c31abSDavid du Colombier 		tm = *localtime(ns/1000000000);
14*368c31abSDavid du Colombier 		return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d.%03d",
15*368c31abSDavid du Colombier 			tm.year+1900, tm.mon+1, tm.mday,
16*368c31abSDavid du Colombier 			tm.hour, tm.min, tm.sec,
17*368c31abSDavid du Colombier 			(int)(ns%1000000000)/1000000);
18*368c31abSDavid du Colombier 	}else{
19*368c31abSDavid du Colombier 		tm = *localtime(time(0));
20*368c31abSDavid du Colombier 		return fmtprint(fmt, "%04d/%02d%02d %02d:%02d:%02d",
21*368c31abSDavid du Colombier 			tm.year+1900, tm.mon+1, tm.mday,
22*368c31abSDavid du Colombier 			tm.hour, tm.min, tm.sec);
23*368c31abSDavid du Colombier 	}
24*368c31abSDavid du Colombier }
25*368c31abSDavid du Colombier 
26