diff --git a/src/basic/time-util.c b/src/basic/time-util.c index 590e2e9e08..ebf1dddb56 100644 --- a/src/basic/time-util.c +++ b/src/basic/time-util.c @@ -798,6 +798,16 @@ static int parse_timestamp_impl(const char *t, usec_t *usec, bool with_tz) { goto from_tm; } + /* Support OUTPUT_SHORT and OUTPUT_SHORT_PRECISE formats */ + tm = copy; + k = strptime(t, "%b %d %H:%M:%S", &tm); + if (k) { + if (*k == '.') + goto parse_usec; + else if (*k == 0) + goto from_tm; + } + tm = copy; k = strptime(t, "%y-%m-%d %H:%M", &tm); if (k && *k == 0) { diff --git a/src/test/test-date.c b/src/test/test-date.c index 355f4e17de..b3b902e64b 100644 --- a/src/test/test-date.c +++ b/src/test/test-date.c @@ -73,6 +73,8 @@ int main(int argc, char *argv[]) { test_one("12-10-03 12:13"); test_one("2012-12-30 18:42"); test_one("2012-10-02"); + test_one("Mar 12 12:01:01"); + test_one("Mar 12 12:01:01.687197"); test_one("Tue 2012-10-02"); test_one("yesterday"); test_one("today");