threads / bug / 50858

[Bug] git log - reports wrong date and time

Subject: [Bug] git log - reports wrong date and time

## tl;dr

3 messages between Apr 1, 2019 and Apr 2, 2019.

replies: 2people: 2as markdown or json

Chanseok Oh· Apr 1, 2019, 22:31 UTC · lore
Hello,
I'm using the latest version.
    $ git version
    git version 2.21.0.392.gf8f6787159e-goog
WORKS: the following prints out the date and time in my local timezone.
    $ git log '--date=format-local:%Y%m%d %H%M%S %z (%Z)' --format=%cd -n1
    20190401 170250 -0400 (EDT)
WORKS: "TZ=UTC" is respected. It prints time in UTC.
    $ TZ=UTC git log '--date=format-local:%Y%m%d %H%M%S %z (%Z)'
--format=%cd -n1
    20190401 210250 +0000 (UTC)
BROKEN: anything other than UTC reports wrong date.
    $ TZ=KST git log '--date=format-local:%Y%m%d %H%M%S %z (%Z)'
--format=%cd -n1
    20190401 210250 +0000 (KST)
The time is in UTC. Worse, %Z respects TZ=KST, which is in conflict with %z.

The symptom is same with "--date=local". It respects TZ=UTC but nothing other than TZ=UTC.

Regards, Chanseok

Junio C Hamano· Apr 2, 2019, 00:38 UTC · re: Chanseok Oh · lore

Re: [Bug] git log - reports wrong date and time

Chanseok Oh <chanseok@google.com> writes:
Show 5 quoted lines
> BROKEN: anything other than UTC reports wrong date.
>
>     $ TZ=KST git log '--date=format-local:%Y%m%d %H%M%S %z (%Z)'
> --format=%cd -n1
>     20190401 210250 +0000 (KST)

I think you are probably on a system where timezones can be given only with a more modern and unambiguous style and not in the potentially ambiguous abbreviated form. Here is one experiment to show what I mean:

    $ TZ=KST date
    Tue Apr  2 00:29:51 KST 2019
    $ TZ=JST date
    Tue Apr  2 00:29:51 JST 2019
    $ TZ=Asia/Tokyo date
    Tue Apr  2 09:29:51 JST 2019
Two points to be learned from the above exercise are:
 - It is not limited to your copy of "git".  Even a system supplied
   command like "date" does not work with "JST" but it can grok
   Asia/Tokyo just fine ("JST" does not necessarily have to be
   "Japan standard time"; it could be Jamaican ;-)).
 - It is not limited to KST (is that Kabul standard time?  Khartoum?
   Kinshasa?).
Perhaps try TZ=Asia/Seoul or something?
Chanseok Oh· Apr 2, 2019, 14:59 UTC · re: Junio C Hamano · lore

Re: [Bug] git log - reports wrong date and time

Turns out I wasn't using TZ in the right way. One of the formats for TZ is std offset, where std string specifies the name of the time zone (such as EDT, PDT, KST, or JST) and offset is the time that should be added to get UTC. In this format, you specify the time zone information directly, which means, it is your responsibility to specify the correct time zone information. Below demonstrates how this format works:

$ TZ=UTS-3 date
$ TZ=KST-7:30 date
$ TZ=JST+12:22:12 date
Thanks for you response anyway, and sorry for the noise.
On Mon, Apr 1, 2019 at 8:38 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 32 quoted lines
>
> Chanseok Oh <chanseok@google.com> writes:
>
> > BROKEN: anything other than UTC reports wrong date.
> >
> >     $ TZ=KST git log '--date=format-local:%Y%m%d %H%M%S %z (%Z)'
> > --format=%cd -n1
> >     20190401 210250 +0000 (KST)
>
> I think you are probably on a system where timezones can be given
> only with a more modern and unambiguous style and not in the
> potentially ambiguous abbreviated form.  Here is one experiment to
> show what I mean:
>
>     $ TZ=KST date
>     Tue Apr  2 00:29:51 KST 2019
>     $ TZ=JST date
>     Tue Apr  2 00:29:51 JST 2019
>     $ TZ=Asia/Tokyo date
>     Tue Apr  2 09:29:51 JST 2019
>
> Two points to be learned from the above exercise are:
>
>  - It is not limited to your copy of "git".  Even a system supplied
>    command like "date" does not work with "JST" but it can grok
>    Asia/Tokyo just fine ("JST" does not necessarily have to be
>    "Japan standard time"; it could be Jamaican ;-)).
>
>  - It is not limited to KST (is that Kabul standard time?  Khartoum?
>    Kinshasa?).
>
> Perhaps try TZ=Asia/Seoul or something?

← back to recent threads