diff --git a/include/chrono b/include/chrono
index 97b0c81..e5b9a49 100644
--- a/include/chrono
+++ b/include/chrono
@@ -225,9 +225,9 @@
     typedef chrono::time_point<system_clock> time_point;
     static const bool is_steady =            false;
 
-    static time_point now();
-    static time_t     to_time_t  (const time_point& __t);
-    static time_point from_time_t(time_t __t);
+    static time_point now() noexcept;
+    static time_t     to_time_t  (const time_point& __t) noexcept;
+    static time_point from_time_t(time_t __t) noexcept;
 };
 
 class steady_clock
@@ -239,7 +239,7 @@
     typedef chrono::time_point<steady_clock, duration>    time_point;
     static const bool is_steady =                         true;
 
-    static time_point now();
+    static time_point now() noexcept;
 };
 
 typedef steady_clock high_resolution_clock;
@@ -845,9 +845,9 @@
     typedef chrono::time_point<system_clock> time_point;
     static const bool is_steady =            false;
 
-    static time_point now();
-    static time_t     to_time_t  (const time_point& __t);
-    static time_point from_time_t(time_t __t);
+    static time_point now() _NOEXCEPT;
+    static time_t     to_time_t  (const time_point& __t) _NOEXCEPT;
+    static time_point from_time_t(time_t __t) _NOEXCEPT;
 };
 
 class _LIBCPP_VISIBLE steady_clock
@@ -859,7 +859,7 @@
     typedef chrono::time_point<steady_clock, duration>    time_point;
     static const bool is_steady =                         true;
 
-    static time_point now();
+    static time_point now() _NOEXCEPT;
 };
 
 typedef steady_clock high_resolution_clock;
diff --git a/src/chrono.cpp b/src/chrono.cpp
index c371420..416b950 100644
--- a/src/chrono.cpp
+++ b/src/chrono.cpp
@@ -25,7 +25,7 @@
 // system_clock
 
 system_clock::time_point
-system_clock::now()
+system_clock::now() _NOEXCEPT
 {
     timeval tv;
     gettimeofday(&tv, 0);
@@ -33,13 +33,13 @@
 }
 
 time_t
-system_clock::to_time_t(const time_point& t)
+system_clock::to_time_t(const time_point& t) _NOEXCEPT
 {
     return time_t(duration_cast<seconds>(t.time_since_epoch()).count());
 }
 
 system_clock::time_point
-system_clock::from_time_t(time_t t)
+system_clock::from_time_t(time_t t) _NOEXCEPT
 {
     return system_clock::time_point(seconds(t));
 }
@@ -97,7 +97,7 @@
 #pragma GCC visibility pop
 
 steady_clock::time_point
-steady_clock::now()
+steady_clock::now() _NOEXCEPT
 {
     static FP fp = init_steady_clock();
     return time_point(duration(fp()));
@@ -114,7 +114,7 @@
 //  instead.
 
 steady_clock::time_point
-steady_clock::now()
+steady_clock::now() _NOEXCEPT
 {
     struct timespec tp;
     if (0 != clock_gettime(CLOCK_MONOTONIC, &tp))
