summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util.c18
-rw-r--r--util.h4
2 files changed, 22 insertions, 0 deletions
diff --git a/util.c b/util.c
index 29f48b08e3..52ca5e2563 100644
--- a/util.c
+++ b/util.c
@@ -1258,6 +1258,24 @@ bool chars_intersect(const char *a, const char *b) {
return false;
}
+char *format_timestamp(char *buf, size_t l, usec_t t) {
+ struct tm tm;
+ time_t sec;
+
+ assert(buf);
+ assert(l > 0);
+
+ if (t <= 0)
+ return NULL;
+
+ sec = (time_t) t / USEC_PER_SEC;
+
+ if (strftime(buf, l, "%a, %d %b %Y %H:%M:%S %z", localtime_r(&sec, &tm)) <= 0)
+ return NULL;
+
+ return buf;
+}
+
static const char *const ioprio_class_table[] = {
[IOPRIO_CLASS_NONE] = "none",
[IOPRIO_CLASS_RT] = "realtime",
diff --git a/util.h b/util.h
index b22074edec..df2f3f7966 100644
--- a/util.h
+++ b/util.h
@@ -41,6 +41,8 @@ typedef uint64_t usec_t;
#define WHITESPACE " \t\n\r"
#define NEWLINE "\n\r"
+#define FORMAT_TIMESTAMP_MAX 64
+
usec_t now(clockid_t clock);
usec_t timespec_load(const struct timespec *ts);
@@ -166,6 +168,8 @@ bool ignore_file(const char *filename);
bool chars_intersect(const char *a, const char *b);
+char *format_timestamp(char *buf, size_t l, usec_t t);
+
#define DEFINE_STRING_TABLE_LOOKUP(name,type) \
const char *name##_to_string(type i) { \
if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \