diff --git a/pkgs/clock/CHANGELOG.md b/pkgs/clock/CHANGELOG.md
index de66ff8..d1932bc 100644
--- a/pkgs/clock/CHANGELOG.md
+++ b/pkgs/clock/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.1
+
+* Update to lowercase Dart core library constants.
+
 ## 1.0.0
 
 This release contains the `Clock` class that was defined in [`quiver`][]. It's
diff --git a/pkgs/clock/analysis_options.yaml b/pkgs/clock/analysis_options.yaml
deleted file mode 100644
index a10d4c5..0000000
--- a/pkgs/clock/analysis_options.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-analyzer:
-  strong-mode: true
diff --git a/pkgs/clock/lib/src/utils.dart b/pkgs/clock/lib/src/utils.dart
index 48fd0be..c1223cf 100644
--- a/pkgs/clock/lib/src/utils.dart
+++ b/pkgs/clock/lib/src/utils.dart
@@ -29,7 +29,7 @@
 /// This function assumes the use of the Gregorian calendar or the proleptic
 /// Gregorian calendar.
 int daysInMonth(int year, int month) =>
-    (month == DateTime.FEBRUARY && isLeapYear(year)) ? 29 : _daysInMonth[month];
+    (month == DateTime.february && isLeapYear(year)) ? 29 : _daysInMonth[month];
 
 /// Returns true if [year] is a leap year.
 ///
diff --git a/pkgs/clock/pubspec.yaml b/pkgs/clock/pubspec.yaml
index 8a79678..6d7325d 100644
--- a/pkgs/clock/pubspec.yaml
+++ b/pkgs/clock/pubspec.yaml
@@ -1,11 +1,11 @@
 name: clock
-version: 1.0.0
+version: 1.0.1
 description: A fakeable wrapper for dart:core clock APIs
 author: Dart Team <misc@dartlang.org>
 homepage: https://github.com/dart-lang/clock
 
 environment:
-  sdk: '>=1.24.0 <2.0.0'
+  sdk: '>=2.0.0-dev.36.0 <3.0.0'
 
 dependencies:
   meta: '>=0.9.0 <2.0.0'
diff --git a/pkgs/clock/test/stopwatch_test.dart b/pkgs/clock/test/stopwatch_test.dart
index 11e6255..151d2dc 100644
--- a/pkgs/clock/test/stopwatch_test.dart
+++ b/pkgs/clock/test/stopwatch_test.dart
@@ -35,11 +35,11 @@
     test("stop() does nothing", () {
       stopwatch.stop();
       expect(stopwatch.isRunning, isFalse);
-      expect(stopwatch.elapsed, equals(Duration.ZERO));
+      expect(stopwatch.elapsed, equals(Duration.zero));
     });
 
     group("reports no elapsed", () {
-      test("duration", () => expect(stopwatch.elapsed, equals(Duration.ZERO)));
+      test("duration", () => expect(stopwatch.elapsed, equals(Duration.zero)));
       test("ticks", () => expect(stopwatch.elapsedTicks, isZero));
       test("microseconds", () => expect(stopwatch.elapsedMicroseconds, isZero));
       test("milliseconds", () => expect(stopwatch.elapsedMilliseconds, isZero));
@@ -79,7 +79,7 @@
         });
 
         test("sets the elapsed time to zero", () {
-          expect(stopwatch.elapsed, equals(Duration.ZERO));
+          expect(stopwatch.elapsed, equals(Duration.zero));
         });
 
         test("reports more elapsed time", () {
@@ -135,12 +135,12 @@
         });
 
         test("sets the elapsed time to zero", () {
-          expect(stopwatch.elapsed, equals(Duration.ZERO));
+          expect(stopwatch.elapsed, equals(Duration.zero));
         });
 
         test("doesn't report more elapsed time", () {
           time = clock.microsFromNow(54321);
-          expect(stopwatch.elapsed, equals(Duration.ZERO));
+          expect(stopwatch.elapsed, equals(Duration.zero));
         });
       });
 
