* Bug report: Author/Commit date in ISO 8601 format @ 2014-08-26 7:29 Oliver Busch 2014-08-26 13:06 ` Jeff King 0 siblings, 1 reply; 8+ messages in thread From: Oliver Busch @ 2014-08-26 7:29 UTC (permalink / raw) To: git Dear git community, I encountered the following problem: When using the date formatting option ISO (either by setting --date=iso or using format:%ci for the committer date), the output is formatted like this: 2014-08-25 17:49:43 +0200 But according to ISO 8601, should be formatted like this (see http://www.w3.org/TR/NOTE-datetime): 2014-08-25T17:49:43+02:00 This difference makes it impossible to use automated string conversion (in my case, I tried to use Delphi's XSBuildIns (http://wiert.me/2011/07/19/iso-8601-delphi-way-to-convert-xml-date-and-time-to-tdatetime-and-back-via-stack-overflow/), which converted git's output "2014-08-25 17:49:43 +0200" to a TDateTime of "2014-08-25 02:00:00"; conversion worked correctly when using "2014-08-25T17:49:43+02:00" as input). I therefore suggest to adapt the output when using --date=iso or format:%ci to comply 100% with the ISO 8601 specs, or at least change documentation to say the output is only "ISO-like". Kind regards, Oliver Busch -- Oliver Busch, M.Eng. Airport Research Center GmbH Bismarckstraße 61 52066 Aachen Germany Phone: +49 241 16843-161 Fax: +49 241 16843-19 e-mail: Oliver.Busch@arc-aachen.de Website: http://www.airport-consultants.com Register Court: Amtsgericht Aachen HRB 7313 Ust-Id-No.: DE196450052 Managing Directors: Dipl.-Ing. Tom Alexander Heuer ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Bug report: Author/Commit date in ISO 8601 format 2014-08-26 7:29 Bug report: Author/Commit date in ISO 8601 format Oliver Busch @ 2014-08-26 13:06 ` Jeff King 2014-08-26 13:14 ` Oliver Busch 2014-08-26 13:19 ` Oliver Busch 0 siblings, 2 replies; 8+ messages in thread From: Jeff King @ 2014-08-26 13:06 UTC (permalink / raw) To: Oliver Busch; +Cc: git On Tue, Aug 26, 2014 at 09:29:44AM +0200, Oliver Busch wrote: > I encountered the following problem: When using the date formatting option > ISO (either by setting --date=iso or using format:%ci for the committer > date), the output is formatted like this: > > 2014-08-25 17:49:43 +0200 > > But according to ISO 8601, should be formatted like this (see > http://www.w3.org/TR/NOTE-datetime): > > 2014-08-25T17:49:43+02:00 Yeah, it is not strictly ISO but more ISO-like (to further add confusion, it is mostly RFC3339, which claims to be a "profile of ISO8601". But we don't follow the timezone conventions there. Yeesh). Interestingly, this actually came up when the feature was added: http://thread.gmane.org/gmane.comp.version-control.git/52414/focus=52585 but there was some discussion of ISO8601's weird phrasing of "T" being optional. > I therefore suggest to adapt the output when using --date=iso or > format:%ci to comply 100% with the ISO 8601 specs, or at least change > documentation to say the output is only "ISO-like". I think changing the output at this point would cause backwards compatibility problems (not to mention that it's a lot less readable for humans). Patches welcome for a documentation update. I also think something like --date=iso8601-strict might make sense for the case of feeding the result to another parser. -Peff ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Bug report: Author/Commit date in ISO 8601 format 2014-08-26 13:06 ` Jeff King @ 2014-08-26 13:14 ` Oliver Busch 2014-08-26 13:19 ` Oliver Busch 1 sibling, 0 replies; 8+ messages in thread From: Oliver Busch @ 2014-08-26 13:14 UTC (permalink / raw) To: Jeff King; +Cc: git Peff is right, I did not think of backwards compatibility issues. I believe a new option like "iso-strict" as he suggested will do the trick (and I'm probably not the only one to appreciate its implementation...). Regards, Oliver Am 26.08.2014 um 15:06 schrieb Jeff King: > On Tue, Aug 26, 2014 at 09:29:44AM +0200, Oliver Busch wrote: > >> I encountered the following problem: When using the date formatting option >> ISO (either by setting --date=iso or using format:%ci for the committer >> date), the output is formatted like this: >> >> 2014-08-25 17:49:43 +0200 >> >> But according to ISO 8601, should be formatted like this (see >> http://www.w3.org/TR/NOTE-datetime): >> >> 2014-08-25T17:49:43+02:00 > Yeah, it is not strictly ISO but more ISO-like (to further add > confusion, it is mostly RFC3339, which claims to be a "profile of > ISO8601". But we don't follow the timezone conventions there. Yeesh). > > Interestingly, this actually came up when the feature was added: > > http://thread.gmane.org/gmane.comp.version-control.git/52414/focus=52585 > > but there was some discussion of ISO8601's weird phrasing of "T" being > optional. > >> I therefore suggest to adapt the output when using --date=iso or >> format:%ci to comply 100% with the ISO 8601 specs, or at least change >> documentation to say the output is only "ISO-like". > I think changing the output at this point would cause backwards > compatibility problems (not to mention that it's a lot less readable for > humans). > > Patches welcome for a documentation update. I also think something like > --date=iso8601-strict might make sense for the case of feeding the > result to another parser. > > -Peff > -- Oliver Busch, M.Eng. Airport Research Center GmbH Bismarckstraße 61 52066 Aachen Germany Phone: +49 241 16843-161 Fax: +49 241 16843-19 e-mail: Oliver.Busch@arc-aachen.de Website: http://www.airport-consultants.com Register Court: Amtsgericht Aachen HRB 7313 Ust-Id-No.: DE196450052 Managing Directors: Dipl.-Ing. Tom Alexander Heuer ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Bug report: Author/Commit date in ISO 8601 format 2014-08-26 13:06 ` Jeff King 2014-08-26 13:14 ` Oliver Busch @ 2014-08-26 13:19 ` Oliver Busch 2014-08-26 13:33 ` Jeff King 1 sibling, 1 reply; 8+ messages in thread From: Oliver Busch @ 2014-08-26 13:19 UTC (permalink / raw) To: Jeff King; +Cc: git PS: As far as I understand it, there is no "optionality" of the "T" as an indicator for the start of the time part. Am 26.08.2014 um 15:06 schrieb Jeff King: > On Tue, Aug 26, 2014 at 09:29:44AM +0200, Oliver Busch wrote: > >> I encountered the following problem: When using the date formatting option >> ISO (either by setting --date=iso or using format:%ci for the committer >> date), the output is formatted like this: >> >> 2014-08-25 17:49:43 +0200 >> >> But according to ISO 8601, should be formatted like this (see >> http://www.w3.org/TR/NOTE-datetime): >> >> 2014-08-25T17:49:43+02:00 > Yeah, it is not strictly ISO but more ISO-like (to further add > confusion, it is mostly RFC3339, which claims to be a "profile of > ISO8601". But we don't follow the timezone conventions there. Yeesh). > > Interestingly, this actually came up when the feature was added: > > http://thread.gmane.org/gmane.comp.version-control.git/52414/focus=52585 > > but there was some discussion of ISO8601's weird phrasing of "T" being > optional. > >> I therefore suggest to adapt the output when using --date=iso or >> format:%ci to comply 100% with the ISO 8601 specs, or at least change >> documentation to say the output is only "ISO-like". > I think changing the output at this point would cause backwards > compatibility problems (not to mention that it's a lot less readable for > humans). > > Patches welcome for a documentation update. I also think something like > --date=iso8601-strict might make sense for the case of feeding the > result to another parser. > > -Peff > -- Oliver Busch, M.Eng. Airport Research Center GmbH Bismarckstraße 61 52066 Aachen Germany Phone: +49 241 16843-161 Fax: +49 241 16843-19 e-mail: Oliver.Busch@arc-aachen.de Website: http://www.airport-consultants.com Register Court: Amtsgericht Aachen HRB 7313 Ust-Id-No.: DE196450052 Managing Directors: Dipl.-Ing. Tom Alexander Heuer ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Bug report: Author/Commit date in ISO 8601 format 2014-08-26 13:19 ` Oliver Busch @ 2014-08-26 13:33 ` Jeff King 2014-08-26 14:10 ` Jason Pyeron 0 siblings, 1 reply; 8+ messages in thread From: Jeff King @ 2014-08-26 13:33 UTC (permalink / raw) To: Oliver Busch; +Cc: git On Tue, Aug 26, 2014 at 03:19:11PM +0200, Oliver Busch wrote: > PS: As far as I understand it, there is no "optionality" of the "T" as an > indicator for the start of the time part. The standard says (and I am quoting from Wikipedia here, as I do not have it myself): 4.3.2 NOTE: By mutual agreement of the partners in information interchange, the character [T] may be omitted in applications where there is no risk of confusing a date and time of day representation with others defined in this International Standard. But I am not sure that "omitted" means "can be replaced with a space". And while you can define "by mutual agreement" as "git defines the format, so any consumers agree to it" that is not necessarily useful to somebody who wants to feed the result to an iso8601 parser that does not know or care about git (i.e., it shoves the conversion work onto the person in the middle). -Peff ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: Bug report: Author/Commit date in ISO 8601 format 2014-08-26 13:33 ` Jeff King @ 2014-08-26 14:10 ` Jason Pyeron 2014-08-26 14:22 ` Jeff King 0 siblings, 1 reply; 8+ messages in thread From: Jason Pyeron @ 2014-08-26 14:10 UTC (permalink / raw) To: 'Jeff King', 'Oliver Busch', git > -----Original Message----- > From: Jeff King > Sent: Tuesday, August 26, 2014 9:33 > > On Tue, Aug 26, 2014 at 03:19:11PM +0200, Oliver Busch wrote: > > > PS: As far as I understand it, there is no "optionality" of > the "T" as an > > indicator for the start of the time part. > > The standard says (and I am quoting from Wikipedia here, as I do not > have it myself): > > 4.3.2 NOTE: By mutual agreement of the partners in information > interchange, the character [T] may be omitted in applications where > there is no risk of confusing a date and time of day representation > with others defined in this International Standard. >From ISO 8601:2004 4.3.2 Complete representations The time elements of a date and time of day expression shall be written in the following sequence. a) For calendar dates: year - month - day of the month - time designator - hour - minute - second - zone designator b) For ordinal dates: year - day of the year - time designator - hour - minute - second - zone designator c) For week dates: year - week designator - week - day of the week - time designator - hour - minute - second - zone designator The zone designator is empty if use is made of local time in accordance with 4.2.2.2 through 4.2.2.4, it is the UTC designator [Z] if use is made of UTC of day in accordance with 4.2.4 and it is the difference-component if use is made of local time and the difference from UTC in accordance with 4.2.5.2. The character [T] shall be used as time designator to indicate the start of the representation of the time of day component in these expressions. The hyphen [-] and the colon [:] shall be used, in accordance with 4.4.4, as separators within the date and time of day expressions, respectively, when required. NOTE By mutual agreement of the partners in information interchange, the character [T] may be omitted in applications where there is no risk of confusing a date and time of day representation with others defined in this International Standard. > > But I am not sure that "omitted" means "can be replaced with a space". > And while you can define "by mutual agreement" as "git defines the > format, so any consumers agree to it" that is not necessarily > useful to > somebody who wants to feed the result to an iso8601 parser > that does not > know or care about git (i.e., it shoves the conversion work onto the > person in the middle). Omitted /T?/ does not mean replaced with another character. -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - - Jason Pyeron PD Inc. http://www.pdinc.us - - Principal Consultant 10 West 24th Street #100 - - +1 (443) 269-1555 x333 Baltimore, Maryland 21218 - - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- This message is copyright PD Inc, subject to license 20080407P00. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Bug report: Author/Commit date in ISO 8601 format 2014-08-26 14:10 ` Jason Pyeron @ 2014-08-26 14:22 ` Jeff King [not found] ` <CANgJU+UifjMJPcmC28-SrZOEUR45qQQfdM_rf-HHtkfBAMEyRw@mail.gmail.com> 0 siblings, 1 reply; 8+ messages in thread From: Jeff King @ 2014-08-26 14:22 UTC (permalink / raw) To: Oliver Busch, git On Tue, Aug 26, 2014 at 10:10:33AM -0400, Jason Pyeron wrote: > > But I am not sure that "omitted" means "can be replaced with a space". > > And while you can define "by mutual agreement" as "git defines the > > format, so any consumers agree to it" that is not necessarily > > useful to > > somebody who wants to feed the result to an iso8601 parser > > that does not > > know or care about git (i.e., it shoves the conversion work onto the > > person in the middle). > > Omitted /T?/ does not mean replaced with another character. I would agree. But that is the argument made in the thread I linked earlier. I do not think there is much point in re-opening the argument, though. Whatever git generates, changing the output would probably cause a lot of pain. We are likely better off adding a new, "real" iso8601 format option (we can even deprecate the old one, or slate it for switching, but we would need a notification period). -Peff ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CANgJU+UifjMJPcmC28-SrZOEUR45qQQfdM_rf-HHtkfBAMEyRw@mail.gmail.com>]
* Re: Bug report: Author/Commit date in ISO 8601 format [not found] ` <CANgJU+UifjMJPcmC28-SrZOEUR45qQQfdM_rf-HHtkfBAMEyRw@mail.gmail.com> @ 2014-08-27 7:15 ` Oliver Busch 0 siblings, 0 replies; 8+ messages in thread From: Oliver Busch @ 2014-08-27 7:15 UTC (permalink / raw) To: demerphq, Jeff King; +Cc: Git Am 26.08.2014 um 23:41 schrieb demerphq: > On 26 August 2014 16:22, Jeff King <peff@peff.net > <mailto:peff@peff.net>> wrote: > > On Tue, Aug 26, 2014 at 10:10:33AM -0400, Jason Pyeron wrote: > > > > But I am not sure that "omitted" means "can be replaced with a > space". > > > And while you can define "by mutual agreement" as "git defines the > > > format, so any consumers agree to it" that is not necessarily > > > useful to > > > somebody who wants to feed the result to an iso8601 parser > > > that does not > > > know or care about git (i.e., it shoves the conversion work > onto the > > > person in the middle). > > > > Omitted /T?/ does not mean replaced with another character. > > I would agree. But that is the argument made in the thread I linked > earlier. > > I do not think there is much point in re-opening the argument, though. > Whatever git generates, changing the output would probably cause a lot > of pain. We are likely better off adding a new, "real" iso8601 format > option (we can even deprecate the old one, or slate it for switching, > but we would need a notification period). > > > Just curious but when was last time anyone other than the OP in this > thread saw an "iso" date/time stamp that had a "T"? > > I cant remember ever encountering such a system. I cant help but think > the OP should just $git_date=~s/ /T/ and move on to more interesting > things. I doubt there is any real value in truly supporting the spec > to the letter. And the paucity of systems that do follow it makes me > think that is what most people think too. > > Yves > > > -- > perl -Mre=debug -e "/just|another|perl|hacker/" I do not think that this is a matter of how often you or I see an ISO date/time stamp with or without a "T". I agree that git's current output is the best solution for human readability, but it simply does not comply with the standard it claims to be compliant with, which in terms of machine readability IS a problem. Besides, it is not only the missing "T" (and I intentionally ignore the option of omitting it by mutual agreement here), but also the space character between time and timezone which should not be there and the missing colon in the timezone part. And yes, I obviously can come around this issue by refactoring the string myself which is not a very hard task, but, as Jeff already pointed out, this "shoves the conversion work onto the person in the middle" which I consider simply bad style. Oliver PS: On a personal note - if you needed to create software to make a living (as I do) you would probably know that if one of your customers is reporting a problem, telling him to use a workaround and "move on to more interesting things" is considered bad style also. ;) -- Oliver Busch, M.Eng. Airport Research Center GmbH Bismarckstraße 61 52066 Aachen Germany Phone: +49 241 16843-161 Fax: +49 241 16843-19 e-mail: Oliver.Busch@arc-aachen.de Website: http://www.airport-consultants.com Register Court: Amtsgericht Aachen HRB 7313 Ust-Id-No.: DE196450052 Managing Directors: Dipl.-Ing. Tom Alexander Heuer ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-08-27 7:15 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-08-26 7:29 Bug report: Author/Commit date in ISO 8601 format Oliver Busch 2014-08-26 13:06 ` Jeff King 2014-08-26 13:14 ` Oliver Busch 2014-08-26 13:19 ` Oliver Busch 2014-08-26 13:33 ` Jeff King 2014-08-26 14:10 ` Jason Pyeron 2014-08-26 14:22 ` Jeff King [not found] ` <CANgJU+UifjMJPcmC28-SrZOEUR45qQQfdM_rf-HHtkfBAMEyRw@mail.gmail.com> 2014-08-27 7:15 ` Oliver Busch
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).