내가 정말로 원하는 것은 UTC의 날짜/시간을 유연하게사용하여 날짜와 시간의 형식을 지정할 strftime
수 있습니다 . (이 예에서는 .) 이것이 작동할까요 ?'%Y %m %d-%H:%M:%S%z'
2022 02 14 16:21:35-0800
2022 02 15 00:21:35
strftime
(컨텍스트: 가짜 버전과 일치하는 형식을 얻으려고 합니다 git log --date=format
. 사용자 정의 형식을 정의하는 옵션은 시스템에 위임됩니다. 저는 Mac OSX Monterey에 있고 bash를 사용하고 있습니다. 편집: 솔루션은 조금 더 복잡합니다. git에서 사용; 이를 반영하기 위해 문제 설명이 변경되었습니다.go.mod
--date=format:'%foo%bar'
strftime
답변1
C 함수는 strftime()
날짜/시간 형식만 지정합니다. gmtime()
UTC 시간이나 현지 시간을 가져온 localtime()
결과를 전달할 수 있습니다 .
date
기본적으로 현지 시간이 표시되지만 이 옵션을 사용하면 UTC 시간이 표시된다는 것을 나타낼 수 있습니다 -u
.
localtime()
time()
지정된 시간대에 대한 환경 변수의 내용을 기반으로 지정된 에포크 시간(반환된 대로)에 대한 현지 시간을 계산합니다 $TZ
. 이 변수가 정의되지 않으면 시스템마다 동작이 달라집니다.
도구가 항상 현지 시간을 표시하고 세계 시간으로 전환하라는 지시를 받을 수 없는 경우 $TZ
UTC에서 시간대 오프셋을 지정하는 환경에서 항상 도구를 호출할 수 있습니다.
TZ=UTC0 date
다음과 같은 효과가 있습니다.
date -u
TZ=UTC0
UTC
UTC에서 0의 오프셋을 갖는 로캘이 정의되어 있으므로 UTC 시간과 date +%Z
주어진 "UTC"를 얻을 수 있으므로 해당 값을 사용하면 다음과 $TZ
같이 localtime()
작동합니다 gmtime()
.
git
s 의 경우 날짜가 커밋에 저장된 시간대가 아닌 현지 시간으로 표시되도록 --date=format
추가해야 합니다 . -local
그래서:
TZ=UTC0 git log --date=format-local:'%Y %m %d-%T'