diff --git a/common/src/main/java/com/genexus/LocalUtil.java b/common/src/main/java/com/genexus/LocalUtil.java index f14717784..cf7a1cf54 100644 --- a/common/src/main/java/com/genexus/LocalUtil.java +++ b/common/src/main/java/com/genexus/LocalUtil.java @@ -1030,7 +1030,7 @@ private static boolean hasLongYear(String date) if (!getBLANK_EMPTY_DATE() && date.indexOf(" ") != -1) return true; - return date.length() == 10 || date.length() == 19; + return date.length() == 10 || date.length() == 19 || date.length() == 23; } public Date ctotex(String date, int format) diff --git a/java/src/test/java/com/genexus/util/TestDateMethods.java b/java/src/test/java/com/genexus/util/TestDateMethods.java index 76afdcb5e..978154958 100644 --- a/java/src/test/java/com/genexus/util/TestDateMethods.java +++ b/java/src/test/java/com/genexus/util/TestDateMethods.java @@ -42,4 +42,50 @@ public void testYearLimit(){ calendar.setTime(testDate2); Assert.assertTrue(calendar.get(Calendar.YEAR) == 1976); } + + @Test + public void testCtotex(){ + Connect.init(); + + LocalUtil localUtil = new LocalUtil('.', "MDY", "24", 30, "eng"); + Date testDate1 = CommonUtil.nullDate(); + Date testDate2 = CommonUtil.nullDate(); + Date testDate3 = CommonUtil.nullDate(); + try + { + testDate1 = localUtil.ctotex("1930-01-01T00:00", 0); + testDate2 = localUtil.ctotex("2023-01-01T00:00:00", 0); + testDate3 = localUtil.ctotex("2200-12-31T00:00:00.000", 0); + } + catch (Exception e) + { } + + Calendar calendar = GregorianCalendar.getInstance(); + calendar.setTime(testDate1); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 1930); + calendar.setTime(testDate2); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 2023); + calendar.setTime(testDate3); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 2200); + + testDate1 = CommonUtil.nullDate(); + testDate2 = CommonUtil.nullDate(); + testDate3 = CommonUtil.nullDate(); + try + { + testDate1 = localUtil.ctotex("29-01-01", 0); + testDate2 = localUtil.ctotex("30-01-01T00", 0); + testDate3 = localUtil.ctotex("31-12-31T00:00", 0); + } + catch (Exception e) + { } + + calendar = GregorianCalendar.getInstance(); + calendar.setTime(testDate1); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 2029); + calendar.setTime(testDate2); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 1930); + calendar.setTime(testDate3); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 1931); + } } \ No newline at end of file