RFR:JDK-8079628:java.time: DateTimeFormatter containing "DD" fails on 3-digit day-of-year value
Roger Riggs
Roger.Riggs at Oracle.com
Wed May 4 14:28:57 UTC 2016
Hi Nadeesh,
java/time/format/DateTimeFormatterBuilder.java: 1836-1839
Correct as is, but could collapse both count ==2 and count ==3 into a
single appendValue call:
appendValue(field, count, 3, SignStyle.NOT_NEGATIVE); Reviewed.
Roger
On 5/4/2016 3:15 AM, nadeesh tv wrote:
> Hi,
> Updated the webev http://cr.openjdk.java.net/~ntv/8079628/webrev.04/
> Regards,
> Nadeesh
> On 5/3/2016 8:45 PM, Stephen Colebourne wrote:
>> Letters "Q", "q", "M", "L", "d", "D", "F", "h", "H", "k", "K", "m",
>> "s" and no doubt others use NORMAL via
>>
>> appendValue(field);
>>
>> Changing these to use NOT_NEGATIVE would be a big change and doesn't
>> seem justified.
>>
>> For "D", "DD" and "DDD" these seem to be the best balance (as
>> discussed up-thread):
>>
>> * D 1 appendValue(ChronoField.DAY_OF_YEAR)
>> * DD 2 appendValue(ChronoField.DAY_OF_YEAR, 2, 3,
>> SignStyle.NOT_NEGATIVE)
>> * DDD 3 appendValue(ChronoField.DAY_OF_YEAR, 3)
>>
>> ie. we use NOT_NEGATIVE when we are making changes to a field and that
>> is the best option, but otherwise we stick with NORMAL for single
>> letter patterns like "D".
>>
>> Stephen
>>
>>
>> On 3 May 2016 at 15:22, Roger Riggs <Roger.Riggs at oracle.com> wrote:
>>> Hi Nadeesh,
>>>
>>>
>>> On 5/3/2016 3:24 AM, nadeesh tv wrote:
>>>
>>> Hi Roger,
>>> Please see the answers inline
>>>
>>> On 5/3/2016 2:43 AM, Roger Riggs wrote:
>>>
>>> Hi Nadeesh,
>>>
>>> src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java
>>>
>>>
>>> line 1835: the appendValue(field) method has a sign-style of NORMAL;
>>> should
>>> that be NOT_NEGATIVE?
>>>
>>> It's 'NOT_NEGATIVE' only. May be a browser caching issue. Can you
>>> please
>>> check it once again.
>>>
>>> My question was about the existing case for "D" that uses
>>> appendValue(field).
>>> That is a shorthand for:
>>> appendValue(new NumberPrinterParser(field, 1, 19,
>>> SignStyle.NORMAL));
>>>
>>> test/java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java:
>>>
>>> What is being tested in test_dayOfYearFieldPattern?
>>> It does not check that the value parsed matches the input.
>>>
>>> These test cases added initially. Now it's become almost redundant
>>> due to
>>> 'dayOfYearFieldValues' . I could remove it.
>>>
>>> If they are redundant, they should be removed.
>>>
>>>
>>> test/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java
>>>
>>> 686, 688: should these cases show with sign-style NOT_NEGATIVE also?
>>>
>>> Suspecting browser caching here also.
>>>
>>> I'm referring to the test case for "D", which seems like it should
>>> show up
>>> as NOT_NEGATIVE.
>>>
>>>
>>> Updated the webrev by removing some unnecessary spaces
>>> http://cr.openjdk.java.net/~ntv/8079628/webrev.03/
>>>
>>>
>>> Thanks, Roger
>>>
>
More information about the core-libs-dev
mailing list