Subject: Re: [PATCH v2 1/2] date.c: skip fractional second part of ISO-8601

From: Danh Doan <[email-masked]>
Date: Thu, 16 Apr 2020 17:04:26 +0700

On 2020-04-15 12:17:48+0200, Torsten Bögershausen <[email-masked]> wrote:
> On Wed, Apr 15, 2020 at 10:31:27AM +0700, Đoàn Trần Công Danh wrote:
> > git-commit(1) says ISO-8601 is one of our supported date format.
> >
> > ISO-8601 allows timestamps to have a fractional number of seconds.
> > We represent time only in terms of whole seconds, so we never bothered
> > parsing fractional seconds. However, it's better for us to parse and
> > throw away the fractional part than to refuse to parse the timestamp
> > at all.
> >
> > And refusing parsing fractional second part may confuse the parse to
> > think fractional and timezone as day and month in this example:
> >
> > 	2008-02-14 20:30:45.019-04:00
> >
> > Reported-by: Brian M. Carlson <[email-masked]>
> > Signed-off-by: Đoàn Trần Công Danh <[email-masked]>
> > ---
> >  Documentation/date-formats.txt | 2 +-
> >  date.c                         | 2 ++
> >  t/t0006-date.sh                | 2 ++
> >  3 files changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/date-formats.txt b/Documentation/date-formats.txt
> > index 6926e0a4c8..6f69ba2ddd 100644
> > --- a/Documentation/date-formats.txt
> > +++ b/Documentation/date-formats.txt
> > @@ -20,7 +20,7 @@ RFC 2822::
> >  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.
> > +	`T` character as well. The fractional part will be ignored.
> 
> When somebody has read the whole patch series, it is clear what
> "fractional part" means. Otherwise it is not clear, what fractional part
> means. The following may be easier to understand ?
> 
>   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.
>   	Fractional parts of a second like `2005-04-07T22:13:13.091`
>   	will be ignored and treated as `2005-04-07T22:13:13`

Yes, this read better.
I think I'll rephase to

	Fractional parts of a second will be ignored, for example
	`2005-04-07T22:13:13.019` will be treated as
	`2005-04-07T22:13:13`

-- 
Danh