jdk/src/java.base/share/classes/java/time/Clock.java
changeset 29108 57b3b196d3a6
parent 28765 8878e8455f2a
child 33848 80c992df5d92
--- a/jdk/src/java.base/share/classes/java/time/Clock.java	Tue Feb 24 10:52:02 2015 -0800
+++ b/jdk/src/java.base/share/classes/java/time/Clock.java	Tue Feb 24 21:51:45 2015 +0100
@@ -155,7 +155,7 @@
      * @return a clock that uses the best available system clock in the UTC zone, not null
      */
     public static Clock systemUTC() {
-        return new SystemClock(ZoneOffset.UTC);
+        return SystemClock.UTC;
     }
 
     /**
@@ -198,6 +198,9 @@
      */
     public static Clock system(ZoneId zone) {
         Objects.requireNonNull(zone, "zone");
+        if (zone == ZoneOffset.UTC) {
+            return SystemClock.UTC;
+        }
         return new SystemClock(zone);
     }
 
@@ -451,6 +454,8 @@
         private static final long serialVersionUID = 6740630888130243051L;
         private static final long OFFSET_SEED =
                 System.currentTimeMillis()/1000 - 1024; // initial offest
+        static final SystemClock UTC = new SystemClock(ZoneOffset.UTC);
+
         private final ZoneId zone;
         // We don't actually need a volatile here.
         // We don't care if offset is set or read concurrently by multiple