1 #include "cache.h"
2 #include "tr2_tbuf.h"
3 
tr2_tbuf_local_time(struct tr2_tbuf * tb)4 void tr2_tbuf_local_time(struct tr2_tbuf *tb)
5 {
6 	struct timeval tv;
7 	struct tm tm;
8 	time_t secs;
9 
10 	gettimeofday(&tv, NULL);
11 	secs = tv.tv_sec;
12 	localtime_r(&secs, &tm);
13 
14 	xsnprintf(tb->buf, sizeof(tb->buf), "%02d:%02d:%02d.%06ld", tm.tm_hour,
15 		  tm.tm_min, tm.tm_sec, (long)tv.tv_usec);
16 }
17 
tr2_tbuf_utc_datetime_extended(struct tr2_tbuf * tb)18 void tr2_tbuf_utc_datetime_extended(struct tr2_tbuf *tb)
19 {
20 	struct timeval tv;
21 	struct tm tm;
22 	time_t secs;
23 
24 	gettimeofday(&tv, NULL);
25 	secs = tv.tv_sec;
26 	gmtime_r(&secs, &tm);
27 
28 	xsnprintf(tb->buf, sizeof(tb->buf),
29 		  "%4d-%02d-%02dT%02d:%02d:%02d.%06ldZ", tm.tm_year + 1900,
30 		  tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec,
31 		  (long)tv.tv_usec);
32 }
33 
tr2_tbuf_utc_datetime(struct tr2_tbuf * tb)34 void tr2_tbuf_utc_datetime(struct tr2_tbuf *tb)
35 {
36 	struct timeval tv;
37 	struct tm tm;
38 	time_t secs;
39 
40 	gettimeofday(&tv, NULL);
41 	secs = tv.tv_sec;
42 	gmtime_r(&secs, &tm);
43 
44 	xsnprintf(tb->buf, sizeof(tb->buf), "%4d%02d%02dT%02d%02d%02d.%06ldZ",
45 		  tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour,
46 		  tm.tm_min, tm.tm_sec, (long)tv.tv_usec);
47 }
48