<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><font face="Arial" size="2">Jörn wrote:<br></font></div><div><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">>The following is from ISO 8601:2004. A newer version may exist...the character [T] may be omitted </div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">I got my info from wikipedia:</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style:
 normal;">    https://en.wikipedia.org/wiki/ISO_8601</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">You are right, the section on combining date and time</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">    https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">now states the same thing at the end: "It is permitted to omit the 'T' character by mutual agreement". 
 Hmm, I do not recall seeing that before.  Oh well, live and learn...</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">I was aware of the ',' versus '.' optionality, which is why I put it in a throw away p.s. comment.  I should have explicitly stated that ',' does not violate the standard; like you, I was trying to say that I just prefer the style of '.'.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style:
 normal;">brent<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding-left: 5px;">  <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div class="y_msg_container"> <hr size="1"><br clear="none"><br clear="none">4.3.2 Complete representations<br clear="none">"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."<br clear="none"><br clear="none">4.2.2.4 Representations with decimal fraction<br clear="none">"If a decimal fraction is included, lower order time elements (if any) shall be omitted and the decimal fraction shall be divided from the integer part by the decimal sign specified in ISO 31-0, i.e. the comma [,] or full stop [.]. Of these, the comma is the preferred sign.”<br clear="none"><br clear="none">So the current implementation is not in violation of ISO 8601.<br clear="none"><br clear="none">Regarding the separator of fraction of second: both comma and full stop are legal.<br clear="none">JodaTime and java.time (JSR310) are both using the full stop by default.<br clear="none"><br clear="none">Example:<br clear="none">DateTimeFormatter.ISO_OFFSET_DATE_TIME.withZone(ZoneId.systemDefault()).format(Instant.now()) returns something like 2014-06-18T02:10:26.626+02:00<br clear="none"><br clear="none">I’m in favor of full
 stop but that is just a matter of personal taste.<br clear="none"><br clear="none">Given that the current implementation isn’t actually in violation of ISO 8601 I’d just leave everything unchanged to prevent any compatibility issues.<br clear="none"><br clear="none">Some other things to consider: <br clear="none">ISO 8601 is either 02:10:26.626+02:00 or 021026.626+0200 but not 02:10:26.626+0200 (i.e. colons between time but not between timezone offset) which is, to my knowledge, the best that SimpleDateFormat can provide. We can omit the timezone offset in our case (which implies the somewhat ambiguous “local timezone offset” of the computer executing the code) but be aware of this issue if somebody asks for explicit timezone offset information. It’s not easy to provide correctly without either Joda or JSR310.<br clear="none"><br clear="none">Cheers,<br clear="none">Jörn.<br clear="none"><br clear="none">On 18. Juni 2014
 at 00:12:11, Brent (<a shape="rect" ymailto="mailto:yhbrent@yahoo.com" href="mailto:yhbrent@yahoo.com">yhbrent@yahoo.com</a>) wrote:<br clear="none">> Ceki,<br clear="none">>  <br clear="none">> My vote is for option 1).<br clear="none">>  <br clear="none">>  <br clear="none">> The standard violating "no T" original format is a bug that should never have happened.  <br clear="none">>  <br clear="none">>  <br clear="none">> I also vote for just %d to yield the correct (strict) ISO 8601 format.<br clear="none">>  <br clear="none">> brent<br clear="none">>  <br clear="none">> p.s. I am tempted to betray my regional preferences by also advocating for the second/millisecond  <br clear="none">> decimal separator to be a '.' instead of a ','...<br clear="none">>  <br clear="none">>  <br clear="none">>  <br clear="none">>  <br clear="none">>
 >________________________________<br clear="none">> > From: Ceki Gülcü  <br clear="none">> >To: <a shape="rect" ymailto="mailto:logback-dev@qos.ch" href="mailto:logback-dev@qos.ch">logback-dev@qos.ch</a><br clear="none">> >Sent: Tuesday, June 17, 2014 5:38 PM<br clear="none">> >Subject: Re: [logback-dev] ISO8601 format<br clear="none">> ><br clear="none">> ><br clear="none">> ><br clear="none">> >Hello everyone,<br clear="none">> ><br clear="none">> >At present time, %d{ISO8601} is equivalent to writing<br clear="none">> >%d{"yyyy-MM-dd HH:mm:ss,SSS"}. However, to match the ISO8601<br clear="none">> >standard the output should be that of %d{"yyyy-MM-dd'T'HH:mm:ss,SSS"}.<br clear="none">> >Note the 'T' in the middle.<br clear="none">> ><br clear="none">> >On the other hand, there is also a necessity to maintain backward<br clear="none">>
 >compatibility for log parsers that rely on the current albeit incorrect<br clear="none">> >format.<br clear="none">> ><br clear="none">> >Thus, we are hesitating between two options<br clear="none">> ><br clear="none">> >Option 1)<br clear="none">> ><br clear="none">> >Introduce the constant ISO8601_OLD so that %d{ISO8601_OLD} is<br clear="none">> >interpreted as equivalent to %d{"yyyy-MM-dd HH:mm:ss,SSS"}<br clear="none">> >and *change* %d{ISO8601} so it is now equivalent to<br clear="none">> >%d{"yyyy-MM-dd HH:mm:ss,SSS"}.<br clear="none">> ><br clear="none">> ><br clear="none">> >Option 2)<br clear="none">> ><br clear="none">> >Keep %d{ISO8601} as equivalent to %d{"yyyy-MM-dd HH:mm:ss,SSS"}<br clear="none">> >and *introduce* new constant ISO8601_STRICT so that %d{ISO8601_STRICT}<br clear="none">> >is interpreted as equivalent to
 %d{"yyyy-MM-dd'T'HH:mm:ss,SSS"}.<br clear="none">> ><br clear="none">> ><br clear="none">> >Personally, I favor the latter (option 2) as it preserves backward<br clear="none">> >compatibility and allows users to easily refer to the correct ISO8601<br clear="none">> >format if they wish to do so. Indeed, writing %d{ISO8601_STRICT} is<br clear="none">> >easier than %d{"yyyy-MM-dd'T'HH:mm:ss,SSS"}. Moreover, we can encourage<br clear="none">> >the use of %d{ISO8601_STRICT} by favoring it in the documentation, e.g.<br clear="none">> >by mentioning it more often.<br clear="none">> ><br clear="none">> >Note that writing just %d is equivalent to writing %d{ISO8601}. Thus,<br clear="none">> >we can assume that for most user the output generated by %d is done<br clear="none">> >using the default, i.e. the incorrect format, making the backward<br clear="none">> >compatibility argument
 more potent.<br clear="none">> ><br clear="none">> >Cheers,<br clear="none">> >--<br clear="none">> >Ceki<br clear="none">> ><br clear="none">> ><br clear="none">> >On 6/17/2014 4:22, Tony Trinh wrote:<br clear="none">> >> Per LOGBACK-262 [1], logback does not conform to ISO8601 when printing<br clear="none">> >> %d{ISO8601}. We're in the process of fixing this [2], but we'd like to<br clear="none">> >> maintain backward compatibility for log parsers that might rely on the<br clear="none">> >> incorrect format. We have a couple options.<br clear="none">> >><br clear="none">> >> OPTION 1. Add a new option for %d that enables the legacy incorrect<br clear="none">> >> format. Deprecate it, and remove it after several releases. Examples:<br clear="none">> >><br clear="none">> >> %d{ISO8601_OLD}<br clear="none">> >>
 %d{NOT8601}<br clear="none">> >> %d{OLD8601}<br clear="none">> >> %d{ISO8601,,old}<br clear="none">> >> other?<br clear="none">> >><br clear="none">> >> OPTION 2. Force users to specify a custom date format that matches the<br clear="none">> >> legacy incorrect format:<br clear="none">> >><br clear="none">> >> %d{"yyyy-MM-dd HH:mm:ss,SSS"}<br clear="none">> >><br clear="none">> >> Please provide feedback on these options (or a new one) by June 23.<br clear="none">> >><br clear="none">> >> Thanks,<br clear="none">> >> Tony<br clear="none">> >><br clear="none">> >> [1] <a shape="rect" href="http://jira.qos.ch/browse/LOGBACK-262" target="_blank">http://jira.qos.ch/browse/LOGBACK-262</a><br clear="none">> >> [2] <a shape="rect" href="https://github.com/qos-ch/logback/pull/207"
 target="_blank">https://github.com/qos-ch/logback/pull/207</a><br clear="none">> >><br clear="none">> >_______________________________________________<br clear="none">> >logback-dev mailing list<br clear="none">> ><a shape="rect" ymailto="mailto:logback-dev@qos.ch" href="mailto:logback-dev@qos.ch">logback-dev@qos.ch</a><br clear="none">> ><a shape="rect" href="http://mailman.qos.ch/mailman/listinfo/logback-dev" target="_blank">http://mailman.qos.ch/mailman/listinfo/logback-dev</a><br clear="none">> ><br clear="none">> ><br clear="none">> >_______________________________________________<br clear="none">> logback-dev mailing list<br clear="none">> <a shape="rect" ymailto="mailto:logback-dev@qos.ch" href="mailto:logback-dev@qos.ch">logback-dev@qos.ch</a><br clear="none">> <a shape="rect" href="http://mailman.qos.ch/mailman/listinfo/logback-dev"
 target="_blank">http://mailman.qos.ch/mailman/listinfo/logback-dev</a><div class="yqt4591405532" id="yqtfd35037"><br clear="none"><br clear="none">_______________________________________________<br clear="none">logback-dev mailing list<br clear="none"><a shape="rect" ymailto="mailto:logback-dev@qos.ch" href="mailto:logback-dev@qos.ch">logback-dev@qos.ch</a><br clear="none"><a shape="rect" href="http://mailman.qos.ch/mailman/listinfo/logback-dev" target="_blank">http://mailman.qos.ch/mailman/listinfo/logback-dev</a></div><br><br></div> </div> </div> </blockquote></div>   </div></body></html>