From 8cc60ad0d982d2ef04c062372e1a459e984da22d Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Wed, 11 Jul 2018 13:08:22 -0500 Subject: [PATCH] strptime: add basic support for '%s' (seconds since epoch) --- src/time/strptime.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/time/strptime.c b/src/time/strptime.c index c54a0d8c..bec00368 100644 --- a/src/time/strptime.c +++ b/src/time/strptime.c @@ -5,6 +5,9 @@ #include #include #include +#include "time_impl.h" + +struct tm *__localtime_r(const time_t *restrict, struct tm *restrict); char *strptime(const char *restrict s, const char *restrict f, struct tm *restrict tm) { @@ -119,6 +122,15 @@ char *strptime(const char *restrict s, const char *restrict f, struct tm *restri min = 0; range = 61; goto numeric_range; + case 's': + if (!isdigit(*s)) return 0; + else { + char *new_s; + time_t t = strtoull(s, &new_s, 10); + s = new_s; + if (!__localtime_r(&t, tm)) return 0; + } + break; case 'T': s = strptime(s, "%H:%M:%S", tm); if (!s) return 0; -- 2.18.0