Metadata: add env fields to ease life of viewer
[lttng-tools.git] / src / common / time.c
index a01c16df5c44f024c00469beeaa014542c658c9f..387db3e3273224ff7f0837f02725ce36bfc92976 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #include <common/time.h>
+#include <common/error.h>
 #include <common/macros.h>
 #include <stddef.h>
 #include <stdint.h>
@@ -68,6 +69,37 @@ struct timespec timespec_abs_diff(struct timespec t1, struct timespec t2)
        return res;
 }
 
+LTTNG_HIDDEN
+int time_t_to_ISO8601(char *dest, size_t dest_size, time_t time)
+{
+       int ret;
+       struct tm tm, *timeinfo;
+
+       if (dest_size < ISO8601_LEN) {
+               ERR("Failed to format time to ISO8601 destination too small");
+               ret = -1;
+               goto end;
+       }
+
+       timeinfo = localtime_r(&time, &tm);
+       if (!timeinfo) {
+               PERROR("localtime");
+               ret = -1;
+               goto end;
+       }
+
+       ret = strftime(dest, dest_size, ISO8601_FORMAT, timeinfo);
+       if (ret == 0) {
+               ERR("Failed to format time to ISO8601");
+               ret = -1;
+               goto end;
+       }
+
+       ret = 0;
+end:
+       return ret;
+}
+
 static
 void __attribute__((constructor)) init_locale_utf8_support(void)
 {
This page took 0.024841 seconds and 5 git commands to generate.