Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImagesTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImagesTest.java	(revision 9740)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImagesTest.java	(revision 9741)
@@ -73,30 +73,38 @@
         i0.setExifTime(DateUtils.fromString("2016:01:03 11:59:54")); // 4 sec before start of GPX
         i0.createTmp();
-        assertEquals(Pair.create(0.0, -4L), CorrelateGpxWithImages.autoGuess(Collections.singletonList(i0), gpx));
+        assertEquals(Pair.create(CorrelateGpxWithImages.Timezone.ZERO, CorrelateGpxWithImages.Offset.seconds(-4)),
+                CorrelateGpxWithImages.autoGuess(Collections.singletonList(i0), gpx));
     }
 
     @Test
     public void testFormatTimezone() throws Exception {
-        assertEquals("+1:00", CorrelateGpxWithImages.formatTimezone(1));
-        assertEquals("+6:30", CorrelateGpxWithImages.formatTimezone(6.5));
-        assertEquals("-6:30", CorrelateGpxWithImages.formatTimezone(-6.5));
-        assertEquals("+3:08", CorrelateGpxWithImages.formatTimezone(Math.PI));
-        assertEquals("+2:43", CorrelateGpxWithImages.formatTimezone(Math.E));
+        assertEquals("+1:00", new CorrelateGpxWithImages.Timezone(1).formatTimezone());
+        assertEquals("+6:30", new CorrelateGpxWithImages.Timezone(6.5).formatTimezone());
+        assertEquals("-6:30", new CorrelateGpxWithImages.Timezone(-6.5).formatTimezone());
+        assertEquals("+3:08", new CorrelateGpxWithImages.Timezone(Math.PI).formatTimezone());
+        assertEquals("+2:43", new CorrelateGpxWithImages.Timezone(Math.E).formatTimezone());
     }
 
     @Test
     public void testParseTimezone() throws ParseException {
-        assertEquals(1, CorrelateGpxWithImages.parseTimezone("+01:00"), 1e-3);
-        assertEquals(1, CorrelateGpxWithImages.parseTimezone("+1:00"), 1e-3);
-        assertEquals(1.5, CorrelateGpxWithImages.parseTimezone("+01:30"), 1e-3);
-        assertEquals(11.5, CorrelateGpxWithImages.parseTimezone("+11:30"), 1e-3);
+        assertEquals(1, CorrelateGpxWithImages.Timezone.parseTimezone("+01:00").getHours(), 1e-3);
+        assertEquals(1, CorrelateGpxWithImages.Timezone.parseTimezone("+1:00").getHours(), 1e-3);
+        assertEquals(1.5, CorrelateGpxWithImages.Timezone.parseTimezone("+01:30").getHours(), 1e-3);
+        assertEquals(11.5, CorrelateGpxWithImages.Timezone.parseTimezone("+11:30").getHours(), 1e-3);
+    }
+
+    @Test
+    public void testFormatOffest() throws ParseException {
+        assertEquals("0", CorrelateGpxWithImages.Offset.seconds(0).formatOffset());
+        assertEquals("123", CorrelateGpxWithImages.Offset.seconds(123).formatOffset());
+        assertEquals("-4242", CorrelateGpxWithImages.Offset.seconds(-4242).formatOffset());
     }
 
     @Test
     public void testParseOffest() throws ParseException {
-        assertEquals(0, CorrelateGpxWithImages.parseOffset("0"));
-        assertEquals(4242L, CorrelateGpxWithImages.parseOffset("4242"));
-        assertEquals(-4242L, CorrelateGpxWithImages.parseOffset("-4242"));
-        assertEquals(0L, CorrelateGpxWithImages.parseOffset("-0"));
+        assertEquals(0, CorrelateGpxWithImages.Offset.parseOffset("0").getSeconds());
+        assertEquals(4242L, CorrelateGpxWithImages.Offset.parseOffset("4242").getSeconds());
+        assertEquals(-4242L, CorrelateGpxWithImages.Offset.parseOffset("-4242").getSeconds());
+        assertEquals(0L, CorrelateGpxWithImages.Offset.parseOffset("-0").getSeconds());
     }
 }
