Git, как и многие другие программы Unix, сохраняет даты в виде метки времени Unix, которая представляет собой количество секунд с 1 января 1970 года в полночь по UTC.Все эти временные метки указываются с использованием григорианского календаря, и, поскольку Git предназначен только для анализа временных меток, которые есть в григорианском календаре, попытка указать номер 1398 года не будет соответствовать ожидаемому вами поведению: Git будет думать, что вы пытаетесьпредоставить григорианский год 1398 г. н.э.Любые другие инструменты, такие как хост-сервер Git, будут думать то же самое.
Более того, в 32-разрядных системах время сохраняется как 32-разрядное целое число, что означает диапазон допустимых временных отметок.включает только григорианские годы 1902–2038 гг.Если вы используете 32-битную версию Git, он даже не сможет выразить 1398 год (который, опять же, он рассматривает как 621 год назад).В наши дни большинство систем Unix являются 64-битными, но многие пользователи Windows по-прежнему используют 32-битные программы, поэтому, возможно, ваша версия Git не в состоянии обработать эту дату.
Как ни печально, но искажем, нет хорошего способа заставить Git производить негригорианский вывод или обрабатывать негригорианский ввод.Он предназначен для обработки временных меток так, как это делает Unix, что очень тесно связано с григорианским календарем.Возможно, вы можете использовать формат %x %X
в тех местах, где вы хотели бы видеть дату и время, и в вашей системе он может создавать локализованный календарь, но он также не может.