diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index ec05c1a..7a76640 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -60,6 +60,16 @@ class Entity implements IteratorAggregate, EntityInterface {
   protected $isDefaultRevision = TRUE;
 
   /**
+   * The last time this entity was updated, in seconds since the Unix Epoch.
+   *
+   * The number itself is relatively useless but can be subtracted from the current
+   * value of time() to give the age of the last update, in seconds.
+   *
+   * @var int
+   */
+  protected $lastUpdateTime = 0;
+
+  /**
    * Constructs an Entity object.
    *
    * @param array $values
@@ -120,6 +130,33 @@ public function setNewRevision($value = TRUE) {
   }
 
   /**
+   * Returns time of last update to the entity, in seconds since the Unix epoch.
+   *
+   * @return int
+   *   The time of the last update.
+   */
+  public function lastUpdate() {
+    return $lastUpdateTime;
+  }
+
+  /**
+   * Returns time since the last update to the entity, in seconds.
+   *
+   * @return int
+   *   The time since the last update.
+   */
+  public function timeSinceUpdate() {
+    return time() - $lastUpdateTime;
+  }
+
+  /**
+   * Sets $lastUpdateTime to the current time.
+   */
+  public function update() {
+    $lastUpdateTime = time();
+  }
+
+  /**
    * Implements \Drupal\Core\Entity\EntityInterface::entityType().
    */
   public function entityType() {
