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