diff --git a/tests/AndroidTests/src/com/android/unit_tests/TimeTest.java b/tests/AndroidTests/src/com/android/unit_tests/TimeTest.java
index 3b33a99..724ef6a 100644
--- a/tests/AndroidTests/src/com/android/unit_tests/TimeTest.java
+++ b/tests/AndroidTests/src/com/android/unit_tests/TimeTest.java
@@ -359,56 +359,58 @@
         Time t = new Time(Time.TIMEZONE_UTC);
 
         t.parse3339("1980-05-23");
-        if (!t.allDay || t.year != 1980 || t.month != 05 || t.monthDay != 23) {
+        if (!t.allDay || t.year != 1980 || t.month != 04 || t.monthDay != 23) {
             fail("Did not parse all-day date correctly");
         }
 
         t.parse3339("1980-05-23T09:50:50");
-        if (t.allDay || t.year != 1980 || t.month != 05 || t.monthDay != 23 ||
+        if (t.allDay || t.year != 1980 || t.month != 04 || t.monthDay != 23 ||
                 t.hour != 9 || t.minute != 50 || t.second != 50 ||
                 t.gmtoff != 0) {
             fail("Did not parse timezone-offset-less date correctly");
         }
 
         t.parse3339("1980-05-23T09:50:50Z");
-        if (t.allDay || t.year != 1980 || t.month != 05 || t.monthDay != 23 ||
+        if (t.allDay || t.year != 1980 || t.month != 04 || t.monthDay != 23 ||
                 t.hour != 9 || t.minute != 50 || t.second != 50 ||
                 t.gmtoff != 0) {
             fail("Did not parse UTC date correctly");
         }
 
         t.parse3339("1980-05-23T09:50:50.0Z");
-        if (t.allDay || t.year != 1980 || t.month != 05 || t.monthDay != 23 ||
+        if (t.allDay || t.year != 1980 || t.month != 04 || t.monthDay != 23 ||
                 t.hour != 9 || t.minute != 50 || t.second != 50 ||
                 t.gmtoff != 0) {
             fail("Did not parse UTC date correctly");
         }
 
         t.parse3339("1980-05-23T09:50:50.12Z");
-        if (t.allDay || t.year != 1980 || t.month != 05 || t.monthDay != 23 ||
+        if (t.allDay || t.year != 1980 || t.month != 04 || t.monthDay != 23 ||
                 t.hour != 9 || t.minute != 50 || t.second != 50 ||
                 t.gmtoff != 0) {
             fail("Did not parse UTC date correctly");
         }
 
         t.parse3339("1980-05-23T09:50:50.123Z");
-        if (t.allDay || t.year != 1980 || t.month != 05 || t.monthDay != 23 ||
+        if (t.allDay || t.year != 1980 || t.month != 04 || t.monthDay != 23 ||
                 t.hour != 9 || t.minute != 50 || t.second != 50 ||
                 t.gmtoff != 0) {
             fail("Did not parse UTC date correctly");
         }
 
-        t.parse3339("1980-05-23T09:50:50-06:00");
-        if (t.allDay || t.year != 1980 || t.month != 05 || t.monthDay != 23 ||
-                t.hour != 9 || t.minute != 50 || t.second != 50 ||
-                t.gmtoff != -6*3600) {
+        // The time should be normalized to UTC
+        t.parse3339("1980-05-23T09:50:50-01:05");
+        if (t.allDay || t.year != 1980 || t.month != 04 || t.monthDay != 23 ||
+                t.hour != 10 || t.minute != 55 || t.second != 50 ||
+                t.gmtoff != 0) {
             fail("Did not parse timezone-offset date correctly");
         }
 
-        t.parse3339("1980-05-23T09:50:50.123-06:00");
-        if (t.allDay || t.year != 1980 || t.month != 05 || t.monthDay != 23 ||
-                t.hour != 9 || t.minute != 50 || t.second != 50 ||
-                t.gmtoff != -6*3600) {
+        // The time should be normalized to UTC
+        t.parse3339("1980-05-23T09:50:50.123-01:05");
+        if (t.allDay || t.year != 1980 || t.month != 04 || t.monthDay != 23 ||
+                t.hour != 10 || t.minute != 55 || t.second != 50 ||
+                t.gmtoff != 0) {
             fail("Did not parse timezone-offset date correctly");
         }
 
