[
https://issues.apache.org/jira/browse/LANG-1638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17258495#comment-17258495
]
Michael Osipov commented on LANG-1638:
--------------------------------------
OK, found the bug:
{code:java}
case 'y':
case 'Y':
return width>2 ?LITERAL_YEAR_STRATEGY :ABBREVIATED_YEAR_STRATEGY;
{code}
It basically assumes that they are the same, but they are not: {{private static
final Strategy LITERAL_YEAR_STRATEGY = new NumberStrategy(Calendar.YEAR);}}.
There is no calendar field for week year since it is a calculated value in the
{{GregorianCalendar}}:
https://github.com/AdoptOpenJDK/openjdk-jdk8u/blob/a1d853a5d797f38f7be8c260f4a83c1b3fe48adc/jdk/src/share/classes/java/util/GregorianCalendar.java#L2073-L2152
> commons-lang3-3.11 - Date
> --------------------------
>
> Key: LANG-1638
> URL: https://issues.apache.org/jira/browse/LANG-1638
> Project: Commons Lang
> Issue Type: Bug
> Affects Versions: 3.11
> Environment: Production
> Reporter: Shailendra Soni
> Priority: Major
>
> December 27th to 31st 2020 gets converted into 2021 while trying to use
> `DateFormatUtils.format` method.
> {code:java}
> import org.apache.commons.lang3.time.DateFormatUtils;
> import org.apache.commons.lang3.time.DateUtils;
> public class DateEx {
> public static void main(String... args) throws Exception{
> String startDateStr = "2020-12-31";
> String startDate = DateFormatUtils
> .format(DateUtils.parseDate(startDateStr, "YYYY-MM-dd"),
> "YYYY-MM-dd-HH.MM.SS.mmmmmm");
> System.out.println("startDate with Timestamp - " + startDate);
> }
> }
> {code}
>
> Actual Output - 2021-12-31-00.12.00.000000
> Expected Output - 2020-12-31-00.12.00.000000
>
> Can someone look into it.
>
> Version :-
> # Java -> 1.8.0_212-b10
> # Common-lang3 -> 3.11
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)