Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java	(revision 17838)
@@ -6,5 +6,4 @@
 import java.time.Instant;
 import java.util.Arrays;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -160,5 +159,5 @@
                 if (history != null && date != null) {
                     // Lookup for the primitive version at the specified timestamp
-                    HistoryOsmPrimitive hp = history.getByDate(Date.from(date));
+                    HistoryOsmPrimitive hp = history.getByDate(date);
                     if (hp != null) {
                         PrimitiveData data;
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/History.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/History.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/History.java	(revision 17838)
@@ -3,7 +3,7 @@
 
 import java.text.MessageFormat;
+import java.time.Instant;
 import java.util.ArrayList;
 import java.util.Comparator;
-import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -86,6 +86,6 @@
      * @return a new partial copy of this history, from the given date
      */
-    public History from(final Date fromDate) {
-        return filter(this, primitive -> primitive.getTimestamp().compareTo(fromDate) >= 0);
+    public History from(final Instant fromDate) {
+        return filter(this, primitive -> primitive.getInstant().compareTo(fromDate) >= 0);
     }
 
@@ -95,6 +95,6 @@
      * @return a new partial copy of this history, until the given date
      */
-    public History until(final Date untilDate) {
-        return filter(this, primitive -> primitive.getTimestamp().compareTo(untilDate) <= 0);
+    public History until(final Instant untilDate) {
+        return filter(this, primitive -> primitive.getInstant().compareTo(untilDate) <= 0);
     }
 
@@ -105,5 +105,5 @@
      * @return a new partial copy of this history, between the given dates
      */
-    public History between(Date fromDate, Date untilDate) {
+    public History between(Instant fromDate, Instant untilDate) {
         return this.from(fromDate).until(untilDate);
     }
@@ -196,14 +196,14 @@
      * @return the history primitive at given <code>date</code>
      */
-    public HistoryOsmPrimitive getByDate(Date date) {
+    public HistoryOsmPrimitive getByDate(Instant date) {
         History h = sortAscending();
 
         if (h.versions.isEmpty())
             return null;
-        if (h.get(0).getTimestamp().compareTo(date) > 0)
+        if (h.get(0).getInstant().compareTo(date) > 0)
             return null;
         for (int i = 1; i < h.versions.size(); i++) {
-            if (h.get(i-1).getTimestamp().compareTo(date) <= 0
-                    && h.get(i).getTimestamp().compareTo(date) >= 0)
+            if (h.get(i-1).getInstant().compareTo(date) <= 0
+                    && h.get(i).getInstant().compareTo(date) >= 0)
                 return h.get(i);
         }
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryNode.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryNode.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryNode.java	(revision 17838)
@@ -2,5 +2,5 @@
 package org.openstreetmap.josm.data.osm.history;
 
-import java.util.Date;
+import java.time.Instant;
 
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -31,5 +31,5 @@
      * @throws IllegalArgumentException if preconditions are violated
      */
-    public HistoryNode(long id, long version, boolean visible, User user, long changesetId, Date timestamp, LatLon coords) {
+    public HistoryNode(long id, long version, boolean visible, User user, long changesetId, Instant timestamp, LatLon coords) {
         this(id, version, visible, user, changesetId, timestamp, coords, true);
     }
@@ -50,5 +50,5 @@
      * @since 5440
      */
-    public HistoryNode(long id, long version, boolean visible, User user, long changesetId, Date timestamp, LatLon coords,
+    public HistoryNode(long id, long version, boolean visible, User user, long changesetId, Instant timestamp, LatLon coords,
             boolean checkHistoricParams) {
         super(id, version, visible, user, changesetId, timestamp, checkHistoricParams);
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryOsmPrimitive.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryOsmPrimitive.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryOsmPrimitive.java	(revision 17838)
@@ -5,4 +5,5 @@
 
 import java.text.MessageFormat;
+import java.time.Instant;
 import java.util.Collection;
 import java.util.Collections;
@@ -25,5 +26,4 @@
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.Logging;
-import org.openstreetmap.josm.tools.date.DateUtils;
 
 /**
@@ -38,5 +38,5 @@
     private final long changesetId;
     private Changeset changeset;
-    private final Date timestamp;
+    private final Instant timestamp;
     private final long version;
     private Map<String, String> tags;
@@ -54,5 +54,5 @@
      * @throws IllegalArgumentException if preconditions are violated
      */
-    protected HistoryOsmPrimitive(long id, long version, boolean visible, User user, long changesetId, Date timestamp) {
+    protected HistoryOsmPrimitive(long id, long version, boolean visible, User user, long changesetId, Instant timestamp) {
         this(id, version, visible, user, changesetId, timestamp, true);
     }
@@ -73,5 +73,5 @@
      * @since 5440
      */
-    protected HistoryOsmPrimitive(long id, long version, boolean visible, User user, long changesetId, Date timestamp,
+    protected HistoryOsmPrimitive(long id, long version, boolean visible, User user, long changesetId, Instant timestamp,
             boolean checkHistoricParams) {
         ensurePositiveLong(id, "id");
@@ -87,5 +87,5 @@
         this.user = user;
         this.changesetId = changesetId;
-        this.timestamp = DateUtils.cloneDate(timestamp);
+        this.timestamp = timestamp;
         this.tags = new HashMap<>();
     }
@@ -96,5 +96,5 @@
      */
     protected HistoryOsmPrimitive(OsmPrimitive p) {
-        this(p.getId(), p.getVersion(), p.isVisible(), p.getUser(), p.getChangesetId(), Date.from(p.getInstant()));
+        this(p.getId(), p.getVersion(), p.isVisible(), p.getUser(), p.getChangesetId(), p.getInstant());
     }
 
@@ -159,7 +159,17 @@
      * Returns the timestamp.
      * @return the timestamp
-     */
+     * @deprecated Use {@link #getInstant()}
+     */
+    @Deprecated
     public Date getTimestamp() {
-        return DateUtils.cloneDate(timestamp);
+        return Date.from(timestamp);
+    }
+
+    /**
+     * Returns the timestamp.
+     * @return the timestamp
+     */
+    public Instant getInstant() {
+        return timestamp;
     }
 
@@ -364,5 +374,5 @@
             Logging.log(Logging.LEVEL_ERROR, "Cannot change visibility for "+data+':', e);
         }
-        data.setInstant(timestamp.toInstant());
+        data.setInstant(timestamp);
         data.setKeys(tags);
         data.setOsmId(id, (int) version);
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryRelation.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryRelation.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryRelation.java	(revision 17838)
@@ -3,7 +3,7 @@
 
 import java.text.MessageFormat;
+import java.time.Instant;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 
@@ -35,5 +35,5 @@
      * @throws IllegalArgumentException if preconditions are violated
      */
-    public HistoryRelation(long id, long version, boolean visible, User user, long changesetId, Date timestamp) {
+    public HistoryRelation(long id, long version, boolean visible, User user, long changesetId, Instant timestamp) {
         super(id, version, visible, user, changesetId, timestamp);
     }
@@ -53,5 +53,5 @@
      * @since 5440
      */
-    public HistoryRelation(long id, long version, boolean visible, User user, long changesetId, Date timestamp, boolean checkHistoricParams) {
+    public HistoryRelation(long id, long version, boolean visible, User user, long changesetId, Instant timestamp, boolean checkHistoricParams) {
         super(id, version, visible, user, changesetId, timestamp, checkHistoricParams);
     }
@@ -70,5 +70,5 @@
      * @throws IllegalArgumentException if preconditions are violated
      */
-    public HistoryRelation(long id, long version, boolean visible, User user, long changesetId, Date timestamp,
+    public HistoryRelation(long id, long version, boolean visible, User user, long changesetId, Instant timestamp,
             List<RelationMemberData> members) {
         this(id, version, visible, user, changesetId, timestamp);
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryWay.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryWay.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/HistoryWay.java	(revision 17838)
@@ -4,7 +4,7 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.time.Instant;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -35,5 +35,5 @@
      * @throws IllegalArgumentException if preconditions are violated
      */
-    public HistoryWay(long id, long version, boolean visible, User user, long changesetId, Date timestamp) {
+    public HistoryWay(long id, long version, boolean visible, User user, long changesetId, Instant timestamp) {
         super(id, version, visible, user, changesetId, timestamp);
     }
@@ -53,5 +53,5 @@
      * @since 5440
      */
-    public HistoryWay(long id, long version, boolean visible, User user, long changesetId, Date timestamp, boolean checkHistoricParams) {
+    public HistoryWay(long id, long version, boolean visible, User user, long changesetId, Instant timestamp, boolean checkHistoricParams) {
         super(id, version, visible, user, changesetId, timestamp, checkHistoricParams);
     }
@@ -69,5 +69,5 @@
      * @throws IllegalArgumentException if preconditions are violated
      */
-    public HistoryWay(long id, long version, boolean visible, User user, long changesetId, Date timestamp, List<Long> nodeIdList) {
+    public HistoryWay(long id, long version, boolean visible, User user, long changesetId, Instant timestamp, List<Long> nodeIdList) {
         this(id, version, visible, user, changesetId, timestamp);
         CheckParameterUtil.ensureParameterNotNull(nodeIdList, "nodeIdList");
Index: /trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 17838)
@@ -11,7 +11,7 @@
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
-import java.text.DateFormat;
+import java.time.Instant;
+import java.time.format.FormatStyle;
 import java.util.Collections;
-import java.util.Date;
 
 import javax.swing.AbstractAction;
@@ -170,5 +170,5 @@
     }
 
-    protected String getInfoText(final Date timestamp, final long version, final boolean isLatest) {
+    protected String getInfoText(final Instant timestamp, final long version, final boolean isLatest) {
         String text;
         if (isLatest) {
@@ -181,5 +181,5 @@
             String date = "?";
             if (timestamp != null) {
-                date = DateUtils.formatDateTime(timestamp, DateFormat.SHORT, DateFormat.SHORT);
+                date = DateUtils.getDateTimeFormatter(FormatStyle.SHORT, FormatStyle.SHORT).format(timestamp);
             }
             text = tr(
@@ -226,5 +226,5 @@
         if (primitive != null) {
             Changeset cs = primitive.getChangeset();
-            update(cs, model.isLatest(primitive), primitive.getTimestamp(), primitive.getVersion(), primitive.getPrimitiveId());
+            update(cs, model.isLatest(primitive), primitive.getInstant(), primitive.getVersion(), primitive.getPrimitiveId());
         }
     }
@@ -236,6 +236,5 @@
      */
     public void update(final OsmPrimitive primitive, final boolean isLatest) {
-        Date timestamp = Date.from(primitive.getInstant());
-        update(Changeset.fromPrimitive(primitive), isLatest, timestamp, primitive.getVersion(), primitive.getPrimitiveId());
+        update(Changeset.fromPrimitive(primitive), isLatest, primitive.getInstant(), primitive.getVersion(), primitive.getPrimitiveId());
     }
 
@@ -249,5 +248,5 @@
      * @since 14432
      */
-    public void update(final Changeset cs, final boolean isLatest, final Date timestamp, final long version, final PrimitiveId id) {
+    public void update(final Changeset cs, final boolean isLatest, final Instant timestamp, final long version, final PrimitiveId id) {
         lblInfo.setText(getInfoText(timestamp, version, isLatest));
         primitiveId = id;
Index: /trunk/src/org/openstreetmap/josm/gui/history/VersionTableModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/VersionTableModel.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/gui/history/VersionTableModel.java	(revision 17838)
@@ -2,5 +2,5 @@
 package org.openstreetmap.josm.gui.history;
 
-import java.text.DateFormat;
+import java.time.format.FormatStyle;
 
 import javax.swing.table.AbstractTableModel;
@@ -53,6 +53,6 @@
         case VersionTableColumnModel.COL_DATE:
             HistoryOsmPrimitive p3 = model.getPrimitive(row);
-            if (p3 != null && p3.getTimestamp() != null)
-                return DateUtils.formatDateTime(p3.getTimestamp(), DateFormat.SHORT, DateFormat.SHORT);
+            if (p3 != null && p3.getInstant() != null)
+                return DateUtils.getDateTimeFormatter(FormatStyle.SHORT, FormatStyle.SHORT).format(p3.getInstant());
             return null;
         case VersionTableColumnModel.COL_USER:
Index: /trunk/src/org/openstreetmap/josm/io/AbstractParser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/AbstractParser.java	(revision 17837)
+++ /trunk/src/org/openstreetmap/josm/io/AbstractParser.java	(revision 17838)
@@ -4,5 +4,5 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.util.Date;
+import java.time.Instant;
 
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -132,5 +132,5 @@
 
         String v = getMandatoryAttributeString(atts, "timestamp");
-        Date timestamp = DateUtils.fromString(v);
+        Instant timestamp = DateUtils.parseInstant(v);
         HistoryOsmPrimitive primitive = null;
         if (type == OsmPrimitiveType.NODE) {
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/ChangesetDataSetTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/ChangesetDataSetTest.java	(revision 17837)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/ChangesetDataSetTest.java	(revision 17838)
@@ -7,5 +7,5 @@
 import static org.junit.jupiter.api.Assertions.fail;
 
-import java.util.Date;
+import java.time.Instant;
 import java.util.Iterator;
 
@@ -40,5 +40,5 @@
     void testIterator() {
         final ChangesetDataSet cds = new ChangesetDataSet();
-        HistoryNode prim1 = new HistoryNode(1, 1, true, User.getAnonymous(), 1, new Date(), LatLon.ZERO);
+        HistoryNode prim1 = new HistoryNode(1, 1, true, User.getAnonymous(), 1, Instant.now(), LatLon.ZERO);
         cds.put(prim1, ChangesetModificationType.CREATED);
         Iterator<ChangesetDataSetEntry> it = cds.iterator();
@@ -62,12 +62,12 @@
     void testGetEntry() {
         final ChangesetDataSet cds = new ChangesetDataSet();
-        HistoryNode prim1 = new HistoryNode(1, 1, true, User.getAnonymous(), 1, new Date(), LatLon.ZERO);
+        HistoryNode prim1 = new HistoryNode(1, 1, true, User.getAnonymous(), 1, Instant.now(), LatLon.ZERO);
         cds.put(prim1, ChangesetModificationType.CREATED);
-        HistoryNode prim2 = new HistoryNode(1, 2, true, User.getAnonymous(), 1, new Date(), LatLon.ZERO);
+        HistoryNode prim2 = new HistoryNode(1, 2, true, User.getAnonymous(), 1, Instant.now(), LatLon.ZERO);
         prim2.put("highway", "stop");
         cds.put(prim2, ChangesetModificationType.UPDATED);
         assertEquals(prim1, cds.getFirstEntry(prim1.getPrimitiveId()).getPrimitive());
         assertEquals(prim2, cds.getLastEntry(prim1.getPrimitiveId()).getPrimitive());
-        HistoryNode prim3 = new HistoryNode(1, 3, false, User.getAnonymous(), 1, new Date(), null);
+        HistoryNode prim3 = new HistoryNode(1, 3, false, User.getAnonymous(), 1, Instant.now(), null);
 
         cds.put(prim3, ChangesetModificationType.DELETED);
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryNodeTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryNodeTest.java	(revision 17837)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryNodeTest.java	(revision 17838)
@@ -5,5 +5,5 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.util.Date;
+import java.time.Instant;
 import java.util.HashMap;
 import java.util.Map;
@@ -32,5 +32,5 @@
     public JOSMTestRules test = new JOSMTestRules();
 
-    private static HistoryNode create(Date d) {
+    private static HistoryNode create(Instant d) {
         return new HistoryNode(
                 1L,   // id
@@ -49,5 +49,5 @@
     @Test
     void testHistoryNode() {
-        Date d = new Date();
+        Instant d = Instant.now();
         HistoryNode node = create(d);
 
@@ -58,5 +58,5 @@
         assertEquals(3, node.getUser().getId());
         assertEquals(4, node.getChangesetId());
-        assertEquals(d, node.getTimestamp());
+        assertEquals(d, node.getInstant());
     }
 
@@ -66,5 +66,5 @@
     @Test
     void testGetType() {
-        assertEquals(OsmPrimitiveType.NODE, create(new Date()).getType());
+        assertEquals(OsmPrimitiveType.NODE, create(Instant.now()).getType());
     }
 
@@ -86,5 +86,5 @@
     @Test
     void testGetDisplayName() {
-        HistoryNode node = create(new Date());
+        HistoryNode node = create(Instant.now());
         HistoryNameFormatter hnf = DefaultNameFormatter.getInstance();
         assertEquals("1 (0.0, 0.0)", node.getDisplayName(hnf));
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryRelationTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryRelationTest.java	(revision 17837)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryRelationTest.java	(revision 17838)
@@ -5,5 +5,5 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.util.Date;
+import java.time.Instant;
 import java.util.HashMap;
 import java.util.Map;
@@ -31,5 +31,5 @@
     public JOSMTestRules test = new JOSMTestRules();
 
-    private static HistoryRelation create(Date d) {
+    private static HistoryRelation create(Instant d) {
         return new HistoryRelation(
                 1,    // id
@@ -47,5 +47,5 @@
     @Test
     void testHistoryRelation() {
-        Date d = new Date();
+        Instant d = Instant.now();
         HistoryRelation rel = create(d);
 
@@ -56,5 +56,5 @@
         assertEquals(3, rel.getUser().getId());
         assertEquals(4, rel.getChangesetId());
-        assertEquals(d, rel.getTimestamp());
+        assertEquals(d, rel.getInstant());
     }
 
@@ -64,5 +64,5 @@
     @Test
     void testGetType() {
-        assertEquals(OsmPrimitiveType.RELATION, create(new Date()).getType());
+        assertEquals(OsmPrimitiveType.RELATION, create(Instant.now()).getType());
     }
 
@@ -73,7 +73,7 @@
     void testGetDisplayName() {
         HistoryNameFormatter hnf = DefaultNameFormatter.getInstance();
-        HistoryRelation rel0 = create(new Date()); // 0 member
-        HistoryRelation rel1 = create(new Date()); // 1 member
-        HistoryRelation rel2 = create(new Date()); // 2 members
+        HistoryRelation rel0 = create(Instant.now()); // 0 member
+        HistoryRelation rel1 = create(Instant.now()); // 1 member
+        HistoryRelation rel2 = create(Instant.now()); // 2 members
 
         rel1.addMember(new RelationMemberData(null, OsmPrimitiveType.NODE, 1));
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryWayTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryWayTest.java	(revision 17837)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryWayTest.java	(revision 17838)
@@ -6,5 +6,5 @@
 import static org.junit.jupiter.api.Assertions.fail;
 
-import java.util.Date;
+import java.time.Instant;
 import java.util.HashMap;
 import java.util.List;
@@ -33,5 +33,5 @@
     public JOSMTestRules test = new JOSMTestRules();
 
-    private static HistoryWay create(Date d) {
+    private static HistoryWay create(Instant d) {
         return new HistoryWay(
                 1,    // id
@@ -49,5 +49,5 @@
     @Test
     void testHistoryWay() {
-        Date d = new Date();
+        Instant d = Instant.now();
         HistoryWay way = create(d);
 
@@ -58,5 +58,5 @@
         assertEquals(3, way.getUser().getId());
         assertEquals(4, way.getChangesetId());
-        assertEquals(d, way.getTimestamp());
+        assertEquals(d, way.getInstant());
 
         assertEquals(0, way.getNumNodes());
@@ -68,10 +68,10 @@
     @Test
     void testGetType() {
-        assertEquals(OsmPrimitiveType.WAY, create(new Date()).getType());
+        assertEquals(OsmPrimitiveType.WAY, create(Instant.now()).getType());
     }
 
     @Test
     void testNodeManipulation() {
-        HistoryWay way = create(new Date());
+        HistoryWay way = create(Instant.now());
 
         way.addNode(1);
@@ -93,5 +93,5 @@
     @Test
     void testIterating() {
-        HistoryWay way = create(new Date());
+        HistoryWay way = create(Instant.now());
 
         way.addNode(1);
@@ -110,7 +110,7 @@
     void testGetDisplayName() {
         HistoryNameFormatter hnf = DefaultNameFormatter.getInstance();
-        HistoryWay way0 = create(new Date()); // no node
-        HistoryWay way1 = create(new Date()); // 1 node
-        HistoryWay way2 = create(new Date()); // 2 nodes
+        HistoryWay way0 = create(Instant.now()); // no node
+        HistoryWay way1 = create(Instant.now()); // 1 node
+        HistoryWay way2 = create(Instant.now()); // 2 nodes
 
         way1.addNode(1);
Index: /trunk/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserDialogTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserDialogTest.java	(revision 17837)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserDialogTest.java	(revision 17838)
@@ -4,5 +4,5 @@
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.util.Date;
+import java.time.Instant;
 
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -15,5 +15,4 @@
 import org.openstreetmap.josm.data.osm.history.HistoryWay;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
-import org.openstreetmap.josm.tools.date.DateUtils;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -38,5 +37,5 @@
         HistoryDataSet hds = new HistoryDataSet();
         User user = User.createOsmUser(1, "");
-        Date date = DateUtils.fromString("2016-01-01");
+        Instant date = Instant.parse("2016-01-01T00:00:00Z");
         hds.put(new HistoryNode(1, 1, true, user, 1, date, null));
         assertEquals("History for node 1", HistoryBrowserDialog.buildTitle(hds.getHistory(1, OsmPrimitiveType.NODE)));
Index: /trunk/test/unit/org/openstreetmap/josm/io/OsmChangesetContentParserTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/OsmChangesetContentParserTest.java	(revision 17837)
+++ /trunk/test/unit/org/openstreetmap/josm/io/OsmChangesetContentParserTest.java	(revision 17838)
@@ -116,5 +116,5 @@
         assertEquals(1, p.getVersion());
         assertEquals(1, p.getChangesetId());
-        assertNotNull(p.getTimestamp());
+        assertNotNull(p.getInstant());
         assertEquals(ChangesetModificationType.CREATED, ds.getModificationType(p.getPrimitiveId()));
         assertTrue(ds.isCreated(p.getPrimitiveId()));
@@ -146,5 +146,5 @@
         assertEquals(1, p.getVersion());
         assertEquals(1, p.getChangesetId());
-        assertNotNull(p.getTimestamp());
+        assertNotNull(p.getInstant());
         assertEquals(ChangesetModificationType.UPDATED, ds.getModificationType(p.getPrimitiveId()));
         assertTrue(ds.isUpdated(p.getPrimitiveId()));
@@ -176,5 +176,5 @@
         assertEquals(1, p.getVersion());
         assertEquals(1, p.getChangesetId());
-        assertNotNull(p.getTimestamp());
+        assertNotNull(p.getInstant());
         assertEquals(ChangesetModificationType.DELETED, ds.getModificationType(p.getPrimitiveId()));
         assertTrue(ds.isDeleted(p.getPrimitiveId()));
@@ -218,5 +218,5 @@
         assertEquals(1, p.getVersion());
         assertEquals(1, p.getChangesetId());
-        assertNotNull(p.getTimestamp());
+        assertNotNull(p.getInstant());
         assertEquals(ChangesetModificationType.CREATED, ds.getModificationType(p.getPrimitiveId()));
         assertTrue(ds.isCreated(p.getPrimitiveId()));
@@ -228,5 +228,5 @@
         assertEquals(2, w.getVersion());
         assertEquals(1, w.getChangesetId());
-        assertNotNull(w.getTimestamp());
+        assertNotNull(w.getInstant());
         assertEquals(ChangesetModificationType.UPDATED, ds.getModificationType(w.getPrimitiveId()));
         assertTrue(ds.isUpdated(w.getPrimitiveId()));
@@ -239,5 +239,5 @@
         assertEquals(3, r.getVersion());
         assertEquals(1, r.getChangesetId());
-        assertNotNull(r.getTimestamp());
+        assertNotNull(r.getInstant());
         assertEquals(ChangesetModificationType.DELETED, ds.getModificationType(r.getPrimitiveId()));
         assertTrue(ds.isDeleted(r.getPrimitiveId()));
Index: /trunk/test/unit/org/openstreetmap/josm/io/OsmServerHistoryReaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/OsmServerHistoryReaderTest.java	(revision 17837)
+++ /trunk/test/unit/org/openstreetmap/josm/io/OsmServerHistoryReaderTest.java	(revision 17838)
@@ -17,4 +17,6 @@
 
 import com.github.tomakehurst.wiremock.junit.WireMockRule;
+
+import java.time.Instant;
 
 /**
@@ -50,5 +52,5 @@
         assertEquals(1, h.getLatest().getNumKeys());
         assertEquals(65565982, h.getLatest().getChangesetId());
-        assertEquals(1545089885000L, h.getLatest().getTimestamp().getTime());
+        assertEquals(Instant.ofEpochMilli(1545089885000L), h.getLatest().getInstant());
     }
 
@@ -65,5 +67,5 @@
         assertEquals(10, h.getLatest().getNumKeys());
         assertEquals(26368284, h.getLatest().getChangesetId());
-        assertEquals(1414429134000L, h.getLatest().getTimestamp().getTime());
+        assertEquals(Instant.ofEpochMilli(1414429134000L), h.getLatest().getInstant());
     }
 
@@ -80,5 +82,5 @@
         assertEquals(0, h.getLatest().getNumKeys());
         assertEquals(486501, h.getLatest().getChangesetId());
-        assertEquals(1194886166000L, h.getLatest().getTimestamp().getTime());
+        assertEquals(Instant.ofEpochMilli(1194886166000L), h.getLatest().getInstant());
     }
 }
