aboutsummaryrefslogtreecommitdiff
path: root/libbb/time.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2013-03-29 12:30:33 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2013-03-29 12:30:33 +0100
commit8f2cb7ab26b9c720c24cdeffb624bfe0c2352353 (patch)
tree8d76825f24632d338118919b0553f542fdd3a8aa /libbb/time.c
parent6c852bfcadd78f53ec7a5f35882636a2a4a66eb0 (diff)
downloadbusybox-8f2cb7ab26b9c720c24cdeffb624bfe0c2352353.tar.gz
libbb: introduce and use strftime_[YYYYMMDD]HHMMSS()
function old new delta strftime_fmt - 53 +53 strftime_YYYYMMDDHHMMSS - 12 +12 strftime_HHMMSS - 12 +12 human_time 44 43 -1 fmtstr_t 9 - -9 step_time 361 345 -16 watch_main 261 232 -29 ------------------------------------------------------------------------------ (add/remove: 3/1 grow/shrink: 0/3 up/down: 77/-55) Total: 22 bytes text data bss dec hex filename 919203 932 17692 937827 e4f63 busybox_old 919209 932 17692 937833 e4f69 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/time.c')
-rw-r--r--libbb/time.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/libbb/time.c b/libbb/time.c
index e2b938471..57e14b66c 100644
--- a/libbb/time.c
+++ b/libbb/time.c
@@ -187,6 +187,27 @@ time_t FAST_FUNC validate_tm_time(const char *date_str, struct tm *ptm)
return t;
}
+static char* strftime_fmt(char *buf, unsigned len, time_t *tp, const char *fmt)
+{
+ time_t t;
+ if (!tp) {
+ tp = &t;
+ time(tp);
+ }
+ /* Returns pointer to NUL */
+ return buf + strftime(buf, len, fmt, localtime(tp));
+}
+
+char* FAST_FUNC strftime_HHMMSS(char *buf, unsigned len, time_t *tp)
+{
+ return strftime_fmt(buf, len, tp, "%H:%M:%S");
+}
+
+char* FAST_FUNC strftime_YYYYMMDDHHMMSS(char *buf, unsigned len, time_t *tp)
+{
+ return strftime_fmt(buf, len, tp, "%Y-%m-%d %H:%M:%S");
+}
+
#if ENABLE_MONOTONIC_SYSCALL
#include <sys/syscall.h>