git-commit(1) says ISO-8601 is one of our supported date format. However, we only support RFC-3339 date format. We can either: - Update documentation from ISO-8601 to RFC-3339 - Add full support for ISO-8601 This series will try to add full support for ISO-8601. Reported-by: Brian M. Carlson <sandals@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Đoàn Trần Công Danh <congdanhqx@xxxxxxxxx> --- date.c | 2 ++ t/t0006-date.sh | 1 + 2 files changed, 3 insertions(+) diff --git a/date.c b/date.c index b0d9a8421d..2f37397beb 100644 --- a/date.c +++ b/date.c @@ -556,6 +556,8 @@ static int match_multi_number(timestamp_t num, char c, const char *date, case ':': if (num3 < 0) num3 = 0; + else if (*end == '.' && isdigit(end[1])) + strtol(end + 1, &end, 10); if (num < 25 && num2 >= 0 && num2 < 60 && num3 >= 0 && num3 <= 60) { tm->tm_hour = num; tm->tm_min = num2; diff --git a/t/t0006-date.sh b/t/t0006-date.sh index d9fcc829a9..05c914a200 100755 --- a/t/t0006-date.sh +++ b/t/t0006-date.sh @@ -81,6 +81,7 @@ check_parse 2008-02 bad check_parse 2008-02-14 bad check_parse '2008-02-14 20:30:45' '2008-02-14 20:30:45 +0000' check_parse '2008-02-14 20:30:45 -0500' '2008-02-14 20:30:45 -0500' +check_parse '2008-02-14 20:30:45.019-04:00' '2008-02-14 20:30:45 -0400' check_parse '2008-02-14 20:30:45 -0015' '2008-02-14 20:30:45 -0015' check_parse '2008-02-14 20:30:45 -5' '2008-02-14 20:30:45 +0000' check_parse '2008-02-14 20:30:45 -5:' '2008-02-14 20:30:45 +0000' -- 2.26.0.485.g518673e55f