Я думаю, что вы нашли ошибку.
git-commit
утверждает, что понимает эти форматы, но пытается понять намного больше.
The GIT_AUTHOR_DATE, GIT_COMMITTER_DATE environment variables and the --date option
support the following date formats:
Git internal format
It is <unix timestamp> <time zone offset>, where <unix timestamp> is the number
of seconds since the UNIX epoch. <time zone offset> is a positive or negative
offset from UTC. For example CET (which is 1 hour ahead of UTC) is +0100.
RFC 2822
The standard email format as described by RFC 2822, for example Thu, 07 Apr
2005 22:13:13 +0200.
ISO 8601
Time and date specified by the ISO 8601 standard, for example
2005-04-07T22:13:13. The parser accepts a space instead of the T character as
well.
Note
In addition, the date part is accepted in the following formats:
YYYY.MM.DD, MM/DD/YYYY and DD.MM.YYYY.
2020-04-03T12:43:55.019-04:00
является совершенно действительным ISO 8601 datetime в формате ГГГГ-ММ-ДДЧч: мм: сс.ссс ± чч: мм. Он должен работать. Например, здесь Ruby на Rails.
[1] pry(main)> Time.parse("2020-04-03T12:43:55.21-04:00")
=> 2020-04-03 12:43:55 -0400
Git, кажется, перепутал дробные секунды и использует их как день месяца. И да, в часовом поясе -04: 00 тоже есть что-то особенное.
git commit --date='2020-04-03T12:43:55.021-04:00'
-> Вт 21 апреля 12:43:55 2020 -0700 (с долями секунды, Смещение 0400, неверно) git commit --date='2020-04-03T12:43:55-04:00'
-> пт 3 апреля 12:43:55 2020 -0400 (без дробных секунд, смещение 0400, правильно) git commit --date='2020-04-03T12:43:55.021-05:00'
-> пт апр 3 12:43:55 2020 -0500 (доли секунды, смещение 0500, правильное значение) git commit --date='2020-04-03T12:43:22.023-04:00'
-> чт. 23 апреля 12:43:22 2020 -0700 (доли секунды, неверное значение) git commit --date='2020-04-03T12:43:22.024-04:00'
-> пт. 3 апреля 12:43:22 2020 -0400 (правильно)
Я думаю, что-то в Git ad ho c синтаксический анализ читает "21 -04 "как дата 21 апреля. Например.
git commit --date='12:43:22 23-04'
-> Четверг 23 апреля 12:43:22 2020 -0700
Почему оно отключается 23 апреля У меня нет идея.
Вероятно, обрывается в 23, потому что нет 24 часа.
Ошибка, вероятно, match_multi_number в дате. c.