diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
index bf3ba07..d8787a3 100644
--- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php
+++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
@@ -62,7 +62,8 @@ protected function setUp() {
     // Set an explicit site timezone, and disallow per-user timezones.
     $this->config('system.date')
       ->set('timezone.user.configurable', 0)
-      ->set('timezone.default', 'Asia/Tokyo')
+      // A timezone with an offset greater than UTC+12 is used.
+      ->set('timezone.default', 'Pacific/Auckland')
       ->save();
 
     $web_user = $this->drupalCreateUser(array(
@@ -123,15 +124,11 @@ function testDateField() {
     $this->assertFieldByXPath('//*[@id="edit-' . $field_name . '-wrapper"]/h4[contains(@class, "js-form-required")]', TRUE, 'Required markup found');
     $this->assertNoFieldByName("{$field_name}[0][value][time]", '', 'Time element not found.');
 
-    // Build up a date in the UTC timezone.
+    // Build up a date in the UTC timezone. Note that using this will also
+    // mimic the user in a different timezone simply entering '2012-12-31' via
+    // the UI.
     $value = '2012-12-31 00:00:00';
-    $date = new DrupalDateTime($value, 'UTC');
-
-    // The expected values will use the default time.
-    datetime_date_default_time($date);
-
-    // Update the timezone to the system default.
-    $date->setTimezone(timezone_open(drupal_get_user_timezone()));
+    $date = new DrupalDateTime($value, DATETIME_STORAGE_TIMEZONE);
 
     // Submit a valid date and ensure it is accepted.
     $date_format = DateFormat::load('html_date')->getPattern();
@@ -147,6 +144,19 @@ function testDateField() {
     $this->assertRaw($date->format($date_format));
     $this->assertNoRaw($date->format($time_format));
 
+    // Verify the date doesn't change if using a timezone that is UTC+12 when
+    // the entity is edited through the form.
+    $entity = EntityTest::load($id);
+    $this->assertEqual('2012-12-31', $entity->{$field_name}->value);
+    $this->drupalGet('entity_test/manage/' . $id . '/edit');
+    $this->drupalPostForm(NULL, [], t('Save'));
+    $this->drupalGet('entity_test/manage/' . $id . '/edit');
+    $this->drupalPostForm(NULL, [], t('Save'));
+    $this->drupalGet('entity_test/manage/' . $id . '/edit');
+    $this->drupalPostForm(NULL, [], t('Save'));
+    $entity = EntityTest::load($id);
+    $this->assertEqual('2012-12-31', $entity->{$field_name}->value);
+
     // Verify that the date is output according to the formatter settings.
     $options = array(
       'format_type' => array('short', 'medium', 'long'),
