Мне нужна дата в специальном формате.
В Git 2.21 (Q1 2019) введен новый формат даты " --date=human
", который изменяет свой вывод в зависимости от того, как далеко время от текущего времени .
« --date=auto
» может использоваться для использования этого нового формата, когда вывод идет на пейджер или на терминал и в противном случае формат по умолчанию.
См. Коммит 110a6a1 , коммит b841d4f (29 января 2019 г.) и коммит 038a878 , коммит 2fd7c22 (21 января 2019 г.) Стивена П. Смита (``) .
Смотрите коммит acdd377 (18 января 2019) Линуса Торвальдса ( torvalds
) .
(Слиты Junio C Hamano - gitster
- в фиксации ecbe1be , 7 февраля 2019)
Добавить документацию в формате человеческой даты
Отображение информации о дате и времени в формате, аналогичном тому, как люди пишут даты в других контекстах.
Если год не указан, читатель делает вывод, что указана дата в текущем году .
Не отображая избыточную информацию, читатель концентрируется на другой информации .
Патч сообщает относительные даты на основе информации, полученной из даты на машине, на которой выполняется git
команда, во время ее выполнения.
Хотя формат более полезен для людей, отбрасывая выведенную информацию, ничто не делает его действительно человеком.
Если relative
формат даты ' ' еще не был реализован, то relative
было бы целесообразно использовать ' '.
Добавьте human
тесты формата даты.
При использовании human
несколько полей подавляются в зависимости от разницы во времени между исходной датой и датой локального компьютера.
- В тех случаях, когда разница меньше года, поле года подавляется.
- Если время меньше суток; месяц и год подавлены.
check_date_format_human 18000 "5 hours ago" # 5 hours ago
check_date_format_human 432000 "Tue Aug 25 19:20" # 5 days ago
check_date_format_human 1728000 "Mon Aug 10 19:20" # 3 weeks ago
check_date_format_human 13000000 "Thu Apr 2 08:13" # 5 months ago
check_date_format_human 31449600 "Aug 31 2008" # 12 months ago
check_date_format_human 37500000 "Jun 22 2008" # 1 year, 2 months ago
check_date_format_human 55188000 "Dec 1 2007" # 1 year, 9 months ago
check_date_format_human 630000000 "Sep 13 1989" # 20 years ago
## Заменить предложенный auto
режим на ' auto:
'
В дополнение к добавлению human
формата ' ', патч добавил auto
ключевое слово, которое можно использовать в файле конфигурации в качестве альтернативного способа указания человеческого формата. Удаление «auto» очищает human
интерфейс формата.
Добавлена возможность указывать режим ' foo
', если пейджер используется с использованием auto:foo
синтаксиса.
Поэтому в auto:human
режиме даты по умолчанию human
используется пейджер.
Так что вы можете сделать:
git config --add log.date auto:human
и ваши git log
команды " " покажут удобочитаемый формат, если вы не пишете сценарии.
Git 2.24 (Q4 2019) упростил код.
См. Коммит 47b27c9 , коммит 29f4332 (12 сентября 2019 г.) Стивена П. Смита (``) .
(Слиты Junio C Hamano - gitster
- в фиксации 36d2fca , 07 окт 2019)
Прекратите передавать код «сейчас» на дату
Commit b841d4f (Добавить human
формат в test-tool, 2019-01-28, Git v2.21.0-rc0) добавил get_time()
функцию, которая позволяет $GIT_TEST_DATE_NOW
в среде переопределять текущее время.
Поэтому нам больше не нужно интерпретировать эту переменную в cmd__date()
.
Поэтому мы можем прекратить передачу параметра " now
" через функции даты, поскольку никто не использует их.
Обратите внимание, что нам нужно убедиться, что все предыдущие вызывающие абоненты, которые принимали now
параметр " ", правильно использовали get_time()
.