diff --git a/core/modules/user/lib/Drupal/user/Entity/User.php b/core/modules/user/lib/Drupal/user/Entity/User.php
index 4e87d15..c2e8e9d 100644
--- a/core/modules/user/lib/Drupal/user/Entity/User.php
+++ b/core/modules/user/lib/Drupal/user/Entity/User.php
@@ -95,6 +95,9 @@ public function preSave(EntityStorageControllerInterface $storage_controller) {
         \Drupal::service('user.data')->set('user', $this->id(), substr($key, 5), $this->{$key});
       }
     }
+
+    // Before saving the user, set changed time.
+    $this->changed->value = REQUEST_TIME;
   }
 
   /**
@@ -410,4 +413,10 @@ public function setUsername($username) {
     return $this;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getChangedTime() {
+    return $this->get('changed')->value;
+  }
 }
diff --git a/core/modules/user/lib/Drupal/user/UserInterface.php b/core/modules/user/lib/Drupal/user/UserInterface.php
index 3400abf..7803d1f 100644
--- a/core/modules/user/lib/Drupal/user/UserInterface.php
+++ b/core/modules/user/lib/Drupal/user/UserInterface.php
@@ -206,4 +206,11 @@ public function block();
    */
   public function getInitialEmail();
 
+  /**
+   * Returns the user modification timestamp.
+   *
+   * @return int
+   *   User modification timestamp.
+   */
+  public function getChangedTime();
 }
diff --git a/core/modules/user/user.install b/core/modules/user/user.install
index 4a48efb..73339dc 100644
--- a/core/modules/user/user.install
+++ b/core/modules/user/user.install
@@ -130,6 +130,12 @@ function user_schema() {
         'default' => '',
         'description' => 'E-mail address used for initial account creation.',
       ),
+      'changed' => array(
+        'description' => 'The Unix timestamp when the user was most recently saved.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
     ),
     'indexes' => array(
       'access' => array('access'),
