src/java.base/share/classes/sun/util/locale/provider/LocaleResources.java
Print this page
*** 400,424 ****
}
}
if (timeStyle >= 0) {
if (dateStyle >= 0) {
String dateTimePattern = null;
if (prefix != null) {
! dateTimePattern = getDateTimePattern(prefix, "DateTimePatterns", 0, calType);
}
if (dateTimePattern == null) {
! dateTimePattern = getDateTimePattern(null, "DateTimePatterns", 0, calType);
}
switch (dateTimePattern) {
case "{1} {0}":
pattern = datePattern + " " + timePattern;
break;
case "{0} {1}":
pattern = timePattern + " " + datePattern;
break;
default:
! pattern = MessageFormat.format(dateTimePattern, timePattern, datePattern);
break;
}
} else {
pattern = timePattern;
}
--- 400,425 ----
}
}
if (timeStyle >= 0) {
if (dateStyle >= 0) {
String dateTimePattern = null;
+ int dateTimeStyle = Math.max(dateStyle, timeStyle);
if (prefix != null) {
! dateTimePattern = getDateTimePattern(prefix, "DateTimePatterns", dateTimeStyle, calType);
}
if (dateTimePattern == null) {
! dateTimePattern = getDateTimePattern(null, "DateTimePatterns", dateTimeStyle, calType);
}
switch (dateTimePattern) {
case "{1} {0}":
pattern = datePattern + " " + timePattern;
break;
case "{0} {1}":
pattern = timePattern + " " + datePattern;
break;
default:
! pattern = MessageFormat.format(dateTimePattern.replaceAll("'", "''"), timePattern, datePattern);
break;
}
} else {
pattern = timePattern;
}
*** 490,500 ****
}
if (value == NULLOBJECT) {
assert prefix != null;
return null;
}
! return ((String[])value)[styleIndex];
}
private static class ResourceReference extends SoftReference<Object> {
private final String cacheKey;
--- 491,504 ----
}
if (value == NULLOBJECT) {
assert prefix != null;
return null;
}
!
! // for DateTimePatterns. CLDR has multiple styles, while JRE has one.
! String[] styles = (String[])value;
! return (styles.length > 1 ? styles[styleIndex] : styles[0]);
}
private static class ResourceReference extends SoftReference<Object> {
private final String cacheKey;