-
Bug
-
Resolution: Fixed
-
P3
-
10.0.2
-
x86_64
-
generic
ADDITIONAL SYSTEM INFORMATION :
Works on 1.8.0_131, does not work on java 9.0.4 and java 10.0.2.
A DESCRIPTION OF THE PROBLEM :
Parsing date does not work with Australian locale en_AU. Month contains dot in it. See reproducer.
REGRESSION : Last worked in version 8u162
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
This only happens with CLDR enabled. If COMPAT is used instead the problem does not happen.
Under jdk9
Date d = new SimpleDateFormat("dd MMM yyyy", locale).parse("01 Jan. 2006");
gets parsed correctly but
Date d2 = new SimpleDateFormat("dd MMM yyyy", locale).parse("01 Jan 2006");
throws.
See reproducer.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Jan should be parsed as proper month.
ACTUAL -
Exception is thrown:
java.text.ParseException: Unparseable date: "01 Jan 2006"
at java.base/java.text.DateFormat.parse(DateFormat.java:395)
at LocaleTestExplicitLocale.main(LocaleTestExplicitLocale.java:12)
---------- BEGIN SOURCE ----------
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
class LocaleTestExplicitLocale{
public static void main(String[] args){
for (Locale locale: Locale.getAvailableLocales()) {
if (locale.toString().equals("en_AU")) {
System.out.println("DisplayName: "+locale.getDisplayName());
try {
Date d = new SimpleDateFormat("dd MMM yyyy", locale).parse("01 Jan. 2006");
System.out.println(d);
Date d2 = new SimpleDateFormat("dd MMM yyyy", locale).parse("01 Jan 2006");
System.out.println(d2);
} catch (Exception ex) {
ex.printStackTrace(System.out);
}
}
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
-Djava.locale.providers=HOST,SPI,COMPAT,CLDR
FREQUENCY : always
Works on 1.8.0_131, does not work on java 9.0.4 and java 10.0.2.
A DESCRIPTION OF THE PROBLEM :
Parsing date does not work with Australian locale en_AU. Month contains dot in it. See reproducer.
REGRESSION : Last worked in version 8u162
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
This only happens with CLDR enabled. If COMPAT is used instead the problem does not happen.
Under jdk9
Date d = new SimpleDateFormat("dd MMM yyyy", locale).parse("01 Jan. 2006");
gets parsed correctly but
Date d2 = new SimpleDateFormat("dd MMM yyyy", locale).parse("01 Jan 2006");
throws.
See reproducer.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Jan should be parsed as proper month.
ACTUAL -
Exception is thrown:
java.text.ParseException: Unparseable date: "01 Jan 2006"
at java.base/java.text.DateFormat.parse(DateFormat.java:395)
at LocaleTestExplicitLocale.main(LocaleTestExplicitLocale.java:12)
---------- BEGIN SOURCE ----------
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
class LocaleTestExplicitLocale{
public static void main(String[] args){
for (Locale locale: Locale.getAvailableLocales()) {
if (locale.toString().equals("en_AU")) {
System.out.println("DisplayName: "+locale.getDisplayName());
try {
Date d = new SimpleDateFormat("dd MMM yyyy", locale).parse("01 Jan. 2006");
System.out.println(d);
Date d2 = new SimpleDateFormat("dd MMM yyyy", locale).parse("01 Jan 2006");
System.out.println(d2);
} catch (Exception ex) {
ex.printStackTrace(System.out);
}
}
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
-Djava.locale.providers=HOST,SPI,COMPAT,CLDR
FREQUENCY : always
- duplicates
-
JDK-8252413 Australian locale month names contain spurious dot at the end
- Closed
- relates to
-
JDK-8221432 Update CLDR to version 35.1
- Resolved
-
JDK-8252413 Australian locale month names contain spurious dot at the end
- Closed