Index: /trunk/src/org/openstreetmap/josm/data/osm/UserInfo.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/UserInfo.java	(revision 17715)
+++ /trunk/src/org/openstreetmap/josm/data/osm/UserInfo.java	(revision 17716)
@@ -2,9 +2,8 @@
 package org.openstreetmap.josm.data.osm;
 
-import java.util.Date;
+import java.time.Instant;
 import java.util.List;
 
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.tools.date.DateUtils;
 
 /**
@@ -18,5 +17,5 @@
     private String displayName;
     /** the date this user was created */
-    private Date accountCreated;
+    private Instant accountCreated;
     /** the home location */
     private LatLon home;
@@ -73,6 +72,6 @@
      * @return the user account creation date
      */
-    public Date getAccountCreated() {
-        return DateUtils.cloneDate(accountCreated);
+    public Instant getAccountCreated() {
+        return accountCreated;
     }
 
@@ -81,6 +80,6 @@
      * @param accountCreated user account creation date
      */
-    public void setAccountCreated(Date accountCreated) {
-        this.accountCreated = DateUtils.cloneDate(accountCreated);
+    public void setAccountCreated(Instant accountCreated) {
+        this.accountCreated = accountCreated;
     }
 
Index: /trunk/src/org/openstreetmap/josm/io/OsmServerUserInfoReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmServerUserInfoReader.java	(revision 17715)
+++ /trunk/src/org/openstreetmap/josm/io/OsmServerUserInfoReader.java	(revision 17716)
@@ -61,5 +61,5 @@
             v = getAttribute(xmlNode, "account_created");
             if (v != null) {
-                userInfo.setAccountCreated(DateUtils.fromString(v));
+                userInfo.setAccountCreated(DateUtils.parseInstant(v));
             }
             // -- description
Index: /trunk/test/unit/org/openstreetmap/josm/io/OsmServerUserInfoReaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/OsmServerUserInfoReaderTest.java	(revision 17716)
+++ /trunk/test/unit/org/openstreetmap/josm/io/OsmServerUserInfoReaderTest.java	(revision 17716)
@@ -0,0 +1,56 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io;
+
+import org.junit.jupiter.api.Test;
+import org.openstreetmap.josm.data.osm.UserInfo;
+import org.openstreetmap.josm.tools.XmlUtils;
+import org.w3c.dom.Document;
+
+import java.io.ByteArrayInputStream;
+import java.nio.charset.StandardCharsets;
+import java.time.Instant;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+/**
+ * Unit test of {@link OsmServerUserInfoReader}
+ */
+class OsmServerUserInfoReaderTest {
+
+    /**
+     * Unit test of {@link OsmServerUserInfoReader#buildFromXML}
+     */
+    @Test
+    void testBuildFromXML() throws Exception {
+        // from https://wiki.openstreetmap.org/wiki/API_v0.6#Details_of_the_logged-in_user
+        String xml = "<osm version=\"0.6\" generator=\"OpenStreetMap server\">\n" +
+                "\t<user display_name=\"Max Muster\" account_created=\"2006-07-21T19:28:26Z\" id=\"1234\">\n" +
+                "\t\t<contributor-terms agreed=\"true\" pd=\"true\"/>\n" +
+                "\t\t<img href=\"https://www.openstreetmap.org/attachments/users/images/000/000/1234/original/someLongURLOrOther.JPG\"/>\n" +
+                "\t\t<roles></roles>\n" +
+                "\t\t<changesets count=\"4182\"/>\n" +
+                "\t\t<traces count=\"513\"/>\n" +
+                "\t\t<blocks>\n" +
+                "\t\t\t<received count=\"0\" active=\"0\"/>\n" +
+                "\t\t</blocks>\n" +
+                "\t\t<home lat=\"49.4733718952806\" lon=\"8.89285988577866\" zoom=\"3\"/>\n" +
+                "\t\t<description>The description of your profile</description>\n" +
+                "\t\t<languages>\n" +
+                "\t\t\t<lang>de-DE</lang>\n" +
+                "\t\t\t<lang>de</lang>\n" +
+                "\t\t\t<lang>en-US</lang>\n" +
+                "\t\t\t<lang>en</lang>\n" +
+                "\t\t</languages>\n" +
+                "\t\t<messages>\n" +
+                "\t\t\t<received count=\"1\" unread=\"0\"/>\n" +
+                "\t\t\t<sent count=\"0\"/>\n" +
+                "\t\t</messages>\n" +
+                "\t</user>\n" +
+                "</osm>";
+        Document document = XmlUtils.parseSafeDOM(new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)));
+        UserInfo userInfo = OsmServerUserInfoReader.buildFromXML(document);
+        assertEquals("Max Muster", userInfo.getDisplayName());
+        assertEquals(1234, userInfo.getId());
+        assertEquals(Instant.parse("2006-07-21T19:28:26Z"), userInfo.getAccountCreated());
+    }
+}
