Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java	(revision 17717)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java	(revision 17718)
@@ -10,11 +10,14 @@
 import java.awt.Color;
 import java.io.IOException;
+import java.time.Instant;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.TimeZone;
 
 import javax.swing.JScrollPane;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -30,4 +33,5 @@
 import org.openstreetmap.josm.io.GpxReaderTest;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
+import org.openstreetmap.josm.tools.date.DateUtils;
 import org.xml.sax.SAXException;
 
@@ -45,4 +49,13 @@
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     public JOSMTestRules test = new JOSMTestRules().main().projection().i18n().metricSystem();
+
+    /**
+     * Setup test.
+     */
+    @BeforeEach
+    void setUp() {
+        Locale.setDefault(Locale.ROOT);
+        DateUtils.PROP_ISO_DATES.put(true);
+    }
 
     private static String getHtml(GpxLayer layer) {
@@ -167,5 +180,5 @@
                      "        </td>\n" +
                      "        <td>\n" +
-                     "          1/3/16 11:59 AM - 12:00 PM (0:00)\n" +
+                     "          2016-01-03 11:59:58 &#8211; 12:00:00 (2.0 s)\n" +
                      "        </td>\n" +
                      "        <td>\n" +
@@ -197,8 +210,17 @@
                 new GpxTrack(new ArrayList<Collection<WayPoint>>(), new HashMap<String, Object>())));
 
-        assertEquals("1/3/16 11:59 AM - 12:00 PM (0:00)", GpxLayer.getTimespanForTrack(getMinimalGpxData().tracks.iterator().next()));
+        assertEquals("2016-01-03 11:59:58 \u2013 12:00:00 (2.0 s)", GpxLayer.getTimespanForTrack(getMinimalGpxData().tracks.iterator().next()));
 
         TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin"));
-        assertEquals("1/3/16 12:59 PM - 1:00 PM (0:00)", GpxLayer.getTimespanForTrack(getMinimalGpxData().tracks.iterator().next()));
+        assertEquals("2016-01-03 12:59:58 \u2013 13:00:00 (2.0 s)", GpxLayer.getTimespanForTrack(getMinimalGpxData().tracks.iterator().next()));
+    }
+
+    /**
+     * Unit test of {@link GpxLayer#formatTimespan}.
+     */
+    @Test
+    void testFormatTimespan() {
+        Instant[] timespan = {Instant.parse("2021-03-01T17:53:16Z"), Instant.parse("2021-04-03T08:19:19Z")};
+        assertEquals("2021-03-01T17:53:16 \u2013 2021-04-03T08:19:19 (32 days 14 h)", GpxLayer.formatTimespan(timespan));
     }
 
