X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdaemon%2Futils_time.h;h=f9973698ec2a59923d0204b5918370bc57c7d4dd;hb=a762b2b4a6d804139c9ab5f47afacc1a88d6c0c1;hp=4d88dccb6684ec3f4c823f3429ce5a9455d35e1a;hpb=8361c1e963f9184c3c4d87197fd6996d667cdb3f;p=collectd.git diff --git a/src/daemon/utils_time.h b/src/daemon/utils_time.h index 4d88dccb..f9973698 100644 --- a/src/daemon/utils_time.h +++ b/src/daemon/utils_time.h @@ -68,29 +68,38 @@ extern cdtime_t cdtime_mock; #define CDTIME_T_TO_DOUBLE(t) (((double) (t)) / 1073741824.0) #define DOUBLE_TO_CDTIME_T(d) ((cdtime_t) ((d) * 1073741824.0)) -#define CDTIME_T_TO_TIMEVAL(cdt,tvp) do { \ - (tvp)->tv_sec = (time_t) ((cdt) >> 30); \ - (tvp)->tv_usec = (suseconds_t) ((((cdt) & 0x3fffffff) * 1000000 + (1 << 29)) >> 30); \ -} while (0) +#define CDTIME_T_TO_TIMEVAL(t) (struct timeval) { \ + .tv_sec = (time_t) ((t) >> 30), \ + .tv_usec = (suseconds_t) ((((t) & 0x3fffffff) * 1000000 + (1 << 29)) >> 30), \ +} #define TIMEVAL_TO_CDTIME_T(tv) US_TO_CDTIME_T(1000000 * (tv)->tv_sec + (tv)->tv_usec) -#define CDTIME_T_TO_TIMESPEC(cdt,tsp) do { \ - (tsp)->tv_sec = (time_t) ((cdt) >> 30); \ - (tsp)->tv_nsec = (long) ((((cdt) & 0x3fffffff) * 1000000000 + (1 << 29)) >> 30); \ -} while (0) +#define CDTIME_T_TO_TIMESPEC(t) (struct timespec) { \ + .tv_sec = (time_t) ((t) >> 30), \ + .tv_nsec = (long) ((((t) & 0x3fffffff) * 1000000000 + (1 << 29)) >> 30), \ +} #define TIMESPEC_TO_CDTIME_T(ts) NS_TO_CDTIME_T(1000000000ULL * (ts)->tv_sec + (ts)->tv_nsec) cdtime_t cdtime (void); -#define RFC3339_SIZE 26 -#define RFC3339NANO_SIZE 36 +#define RFC3339_SIZE 26 /* 2006-01-02T15:04:05+00:00 */ +#define RFC3339NANO_SIZE 36 /* 2006-01-02T15:04:05.999999999+00:00 */ -/* rfc3339 formats a cdtime_t time in RFC 3339 format with second precision. */ +/* rfc3339 formats a cdtime_t time as UTC in RFC 3339 zulu format with second + * precision, e.g., "2006-01-02T15:04:05Z". */ int rfc3339 (char *buffer, size_t buffer_size, cdtime_t t); -/* rfc3339nano formats a cdtime_t time in RFC 3339 format with nanosecond - * precision. */ +/* rfc3339nano formats a cdtime_t as UTC time in RFC 3339 zulu format with + * nanosecond precision, e.g., "2006-01-02T15:04:05.999999999Z". */ int rfc3339nano (char *buffer, size_t buffer_size, cdtime_t t); +/* rfc3339 formats a cdtime_t time as local in RFC 3339 format with second + * precision, e.g., "2006-01-02T15:04:05+00:00". */ +int rfc3339_local (char *buffer, size_t buffer_size, cdtime_t t); + +/* rfc3339nano formats a cdtime_t time as local in RFC 3339 format with + * nanosecond precision, e.g., "2006-01-02T15:04:05.999999999+00:00". */ +int rfc3339nano_local (char *buffer, size_t buffer_size, cdtime_t t); + #endif /* UTILS_TIME_H */ /* vim: set sw=2 sts=2 et : */