You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2026/03/01 18:01:29 UTC

(jena) branch main updated: Update datetime testing due to Java timezone changes

This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git


The following commit(s) were added to refs/heads/main by this push:
     new b78e81f5a9 Update datetime testing due to Java timezone changes
b78e81f5a9 is described below

commit b78e81f5a9408433435afdc58d41436624594c9d
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Sat Feb 28 18:00:14 2026 +0000

    Update datetime testing due to Java timezone changes
---
 .../apache/jena/atlas/lib/TestDateTimeUtils.java   | 33 ++++++++++++++++++----
 1 file changed, 27 insertions(+), 6 deletions(-)

diff --git a/jena-base/src/test/java/org/apache/jena/atlas/lib/TestDateTimeUtils.java b/jena-base/src/test/java/org/apache/jena/atlas/lib/TestDateTimeUtils.java
index d9338a133b..9a26504b4e 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/lib/TestDateTimeUtils.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/lib/TestDateTimeUtils.java
@@ -29,12 +29,34 @@ import java.util.TimeZone;
 import org.junit.jupiter.api.Test;
 
 public class TestDateTimeUtils {
+    // Why tzNameMinus7?
+    //
+    // These tests were written using "MST" (US Mountain Standard Time, -07:00).
+    //
+    // Java25 prints a warning
+    //   WARNING: Use of the three-letter time zone ID "MST" is deprecated and it will be removed in a future release
+    //
+    // The problem is that "MST" is used loosely, e.g. "Denver timezone is MST"
+    // but Denver observes daylight savings time ("MDT") for part of the year.
+    //
+    //
+    // The same is true for CET (Central European Time) / CEST (S = Summer)
+    // Java is deprecating for removal most three letter timeone.
+    //
+    // The use of 1984, MARCH means these tests are not fragile (it was not in US DST).
+    //   In 1984, US DST was from Sun April 29 02:00 to Sun October 28 02:00.
+    //   US DST started first Sunday in April.
+    //   US moved the start of DST to the second Sunday in March in 2007
+    //
+    // "America/Phoenix" is -07:00 all year round.
+
+    private static final String tzNameMinus7 = "America/Phoenix";
 
 	@Test
 	public void testCalendarToXSDDateTimeString_1() {
 		Calendar cal = createCalendar(1984, Calendar.MARCH, 22, 14, 32, 1, 0, "Z") ;
 		assertEquals("1984-03-22T14:32:01+00:00", DateTimeUtils.calendarToXSDDateTimeString(cal));
-		cal.setTimeZone(TimeZone.getTimeZone("MST"));
+		cal.setTimeZone(TimeZone.getTimeZone(tzNameMinus7));
 		assertEquals("1984-03-22T07:32:01-07:00", DateTimeUtils.calendarToXSDDateTimeString(cal));
 	}
 
@@ -42,17 +64,16 @@ public class TestDateTimeUtils {
     public void testCalendarToXSDDateTimeString_2() {
         Calendar cal = createCalendar(1984, Calendar.MARCH, 22, 14, 32, 1, 50, "Z") ;
         assertEquals("1984-03-22T14:32:01.050+00:00", DateTimeUtils.calendarToXSDDateTimeString(cal));
-        cal.setTimeZone(TimeZone.getTimeZone("MST"));
+        cal.setTimeZone(TimeZone.getTimeZone(tzNameMinus7));
         assertEquals("1984-03-22T07:32:01.050-07:00", DateTimeUtils.calendarToXSDDateTimeString(cal));
     }
 
-
     @Test
 	public void testCalendarToXSDDateString() {
 		Calendar cal = createCalendar(1984, Calendar.MARCH, 22, 23, 59, 1, 0, "Z");
 		cal.setTimeZone(TimeZone.getTimeZone("Z")) ;
 		assertEquals("1984-03-22+00:00", DateTimeUtils.calendarToXSDDateString(cal));
-		cal.setTimeZone(TimeZone.getTimeZone("MST"));
+		cal.setTimeZone(TimeZone.getTimeZone(tzNameMinus7));
 		assertEquals("1984-03-22-07:00", DateTimeUtils.calendarToXSDDateString(cal));
 	}
 
@@ -61,7 +82,7 @@ public class TestDateTimeUtils {
 		Calendar cal = createCalendar(1984, Calendar.MARCH, 22, 14, 32, 1, 0, "GMT+01:00");
 		assertEquals("14:32:01+01:00", DateTimeUtils.calendarToXSDTimeString(cal));
 		// Different timezone - moves the cal point-in-time.
-		cal.setTimeZone(TimeZone.getTimeZone("MST"));
+		cal.setTimeZone(TimeZone.getTimeZone(tzNameMinus7));
 		assertEquals("06:32:01-07:00", DateTimeUtils.calendarToXSDTimeString(cal));
 	}
 
@@ -70,7 +91,7 @@ public class TestDateTimeUtils {
         Calendar cal = createCalendar(1984, Calendar.MARCH, 22, 14, 32, 1, 500, "GMT+01:00");
         assertEquals("14:32:01.500+01:00", DateTimeUtils.calendarToXSDTimeString(cal));
         // Different timezone - moves the cal point-in-time.
-        cal.setTimeZone(TimeZone.getTimeZone("MST"));
+        cal.setTimeZone(TimeZone.getTimeZone(tzNameMinus7));
         assertEquals("06:32:01.500-07:00", DateTimeUtils.calendarToXSDTimeString(cal));
     }