lib/timeutils: add %Y-%m-%dT%H:%M:%S to parse_timestamp()
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
8fb945185f
commit
7999563138
|
@ -179,6 +179,7 @@ int parse_timestamp(const char *t, usec_t *usec)
|
|||
* Allowed syntaxes:
|
||||
*
|
||||
* 2012-09-22 16:34:22
|
||||
* 2012-09-22T16:34:22
|
||||
* 2012-09-22 16:34 (seconds will be set to 0)
|
||||
* 2012-09-22 (time will be set to 00:00:00)
|
||||
* 16:34:22 (date will be set to today)
|
||||
|
@ -271,6 +272,11 @@ int parse_timestamp(const char *t, usec_t *usec)
|
|||
if (k && *k == 0)
|
||||
goto finish;
|
||||
|
||||
tm = copy;
|
||||
k = strptime(t, "%Y-%m-%dT%H:%M:%S", &tm);
|
||||
if (k && *k == 0)
|
||||
goto finish;
|
||||
|
||||
tm = copy;
|
||||
k = strptime(t, "%y-%m-%d %H:%M", &tm);
|
||||
if (k && *k == 0) {
|
||||
|
@ -570,13 +576,21 @@ int main(int argc, char *argv[])
|
|||
char buf[ISO_BUFSIZ];
|
||||
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "usage: %s <time> [<usec>]\n", argv[0]);
|
||||
fprintf(stderr, "usage: %s [<time> [<usec>]] | [--timestamp <str>]\n", argv[0]);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
tv.tv_sec = strtos64_or_err(argv[1], "failed to parse <time>");
|
||||
if (argc == 3)
|
||||
tv.tv_usec = strtos64_or_err(argv[2], "failed to parse <usec>");
|
||||
if (strcmp(argv[1], "--timestamp") == 0) {
|
||||
usec_t usec;
|
||||
|
||||
parse_timestamp(argv[2], &usec);
|
||||
tv.tv_sec = (time_t) (usec / 1000000);
|
||||
tv.tv_usec = usec % 1000000;
|
||||
} else {
|
||||
tv.tv_sec = strtos64_or_err(argv[1], "failed to parse <time>");
|
||||
if (argc == 3)
|
||||
tv.tv_usec = strtos64_or_err(argv[2], "failed to parse <usec>");
|
||||
}
|
||||
|
||||
strtimeval_iso(&tv, ISO_DATE, buf, sizeof(buf));
|
||||
printf("Date: '%s'\n", buf);
|
||||
|
|
Loading…
Reference in New Issue