diff --git a/common/main/an.xml b/common/main/an.xml index 6aed6517ff5..f36393ecbc6 100644 --- a/common/main/an.xml +++ b/common/main/an.xml @@ -1125,8 +1125,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic E, d/M/y – E, d/M/y - E, d/M/y - E, d/M/Y – E, d/M/Y + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y LLL–LLL y diff --git a/common/main/rif.xml b/common/main/rif.xml index 6dc31325f18..7949f8737f4 100644 --- a/common/main/rif.xml +++ b/common/main/rif.xml @@ -1119,7 +1119,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic E dd/MM – E dd/MM - E dd/MM + E dd/MM – E dd/MM MMM – MMM diff --git a/common/main/si.xml b/common/main/si.xml index 32d6943f55d..111d8cb9b98 100644 --- a/common/main/si.xml +++ b/common/main/si.xml @@ -1183,7 +1183,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH.mm–HH.mm - a h.mm – a hhh.mm v + a h.mm – a h.mm v a h.mm – h.mm v a h.mm – h.mm v @@ -1193,7 +1193,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ a h – a h v - a h – h vv + a h – h v ↑↑↑ diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDates.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDates.java index 82f1cec20c1..c40b4e5993f 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDates.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDates.java @@ -3,6 +3,8 @@ import com.google.common.base.Joiner; import com.ibm.icu.impl.Relation; import com.ibm.icu.text.BreakIterator; +import com.ibm.icu.text.DateIntervalInfo; +import com.ibm.icu.text.DateIntervalInfo.PatternInfo; import com.ibm.icu.text.DateTimePatternGenerator; import com.ibm.icu.text.DateTimePatternGenerator.VariableField; import com.ibm.icu.text.MessageFormat; @@ -1192,6 +1194,33 @@ private void checkPattern( new Object[] {requiredYearFieldCount, yearFieldCount})); } } + // check PatternInfo, for CLDR-17827 + // ICU-22835, DateIntervalInfo.genPatternInfo fails for intervals like LLL - MMM (in fa) + if (!(value.contains("LLL") && value.contains("MMM"))) { + PatternInfo pattern = DateIntervalInfo.genPatternInfo(value, false); + try { + String first = pattern.getFirstPart(); + String second = pattern.getSecondPart(); + if (first == null || second == null) { + result.add( + new CheckStatus() + .setCause(this) + .setMainType(CheckStatus.errorType) + .setSubtype(Subtype.incorrectDatePattern) + .setMessage( + "DateIntervalInfo.PatternInfo returns null for first or second part")); + } + } catch (Exception e) { + result.add( + new CheckStatus() + .setCause(this) + .setMainType(CheckStatus.errorType) + .setSubtype(Subtype.incorrectDatePattern) + .setMessage( + "DateIntervalInfo.PatternInfo exception {0}", + new Object[] {e})); + } + } } if (value.contains("G") && calendar.equals("gregorian")) {