Clarify Calendar.clear documentation.

Bug: https://code.google.com/p/android/issues/detail?id=45877
Change-Id: I49c82916a25388864f4acd12e09de984f72e8653
diff --git a/luni/src/main/java/java/util/Calendar.java b/luni/src/main/java/java/util/Calendar.java
index aeddc18..4ed2ad1 100644
--- a/luni/src/main/java/java/util/Calendar.java
+++ b/luni/src/main/java/java/util/Calendar.java
@@ -774,8 +774,9 @@
     }
 
     /**
-     * Clears all of the fields of this {@code Calendar}. All fields are initialized to
-     * zero.
+     * Clears the values of all the time fields, marking them all unset and assigning
+     * them all a value of zero. The actual field values will be determined the next
+     * time the fields are accessed.
      */
     public final void clear() {
         for (int i = 0; i < FIELD_COUNT; i++) {
@@ -786,7 +787,9 @@
     }
 
     /**
-     * Clears the given field to zero and sets the isSet flag to {@code false}.
+     * Clears the value in the given time field, marking it unset and assigning
+     * it a value of zero. The actual field value will be determined the next
+     * time the field is accessed.
      */
     public final void clear(int field) {
         fields[field] = 0;
diff --git a/luni/src/test/java/libcore/java/util/CalendarTest.java b/luni/src/test/java/libcore/java/util/CalendarTest.java
index 5c36fe2..b0e6b6b 100644
--- a/luni/src/test/java/libcore/java/util/CalendarTest.java
+++ b/luni/src/test/java/libcore/java/util/CalendarTest.java
@@ -205,4 +205,21 @@
         double ONE_HOUR = 3600d * 1000d;
         return c.getTimeInMillis() / ONE_HOUR;
     }
+
+    // https://code.google.com/p/android/issues/detail?id=45877
+    public void test_clear_45877() {
+      GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("America/Los_Angeles"));
+      cal.set(Calendar.YEAR, 1970);
+      cal.set(Calendar.MONTH, Calendar.JANUARY);
+      cal.set(Calendar.DAY_OF_MONTH, 1);
+      cal.clear(Calendar.HOUR_OF_DAY);
+      cal.clear(Calendar.MINUTE);
+      cal.clear(Calendar.SECOND);
+      cal.clear(Calendar.MILLISECOND);
+
+      assertEquals(75600000, cal.getTimeInMillis());
+
+      cal.set (Calendar.HOUR_OF_DAY, 0);
+      assertEquals(28800000, cal.getTimeInMillis());
+    }
 }