about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorSteven Fackler <sfackler@palantir.com>2018-03-30 12:01:36 +0200
committerSteven Fackler <sfackler@palantir.com>2018-03-30 12:44:32 +0200
commitdfde231ecaa480e9683d3a54f2182587dc747a56 (patch)
tree5375c73ab3c766e28f6c189e58ec6c59c5483791 /src/libstd
parent696076144d4d904cc99c02f85cf46bbe52404657 (diff)
downloadrust-dfde231ecaa480e9683d3a54f2182587dc747a56.tar.gz
rust-dfde231ecaa480e9683d3a54f2182587dc747a56.zip
Make UNIX_EPOCH an associated constant of SystemTime
It's not very discoverable as a separate const in the module.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/time.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libstd/time.rs b/src/libstd/time.rs
index 7256ac43e27..aeaa3046274 100644
--- a/src/libstd/time.rs
+++ b/src/libstd/time.rs
@@ -259,6 +259,28 @@ impl fmt::Debug for Instant {
 }
 
 impl SystemTime {
+    /// An anchor in time which can be used to create new `SystemTime` instances or
+    /// learn about where in time a `SystemTime` lies.
+    ///
+    /// This constant is defined to be "1970-01-01 00:00:00 UTC" on all systems with
+    /// respect to the system clock. Using `duration_since` on an existing
+    /// `SystemTime` instance can tell how far away from this point in time a
+    /// measurement lies, and using `UNIX_EPOCH + duration` can be used to create a
+    /// `SystemTime` instance to represent another fixed point in time.
+    ///
+    /// # Examples
+    ///
+    /// ```no_run
+    /// use std::time::SystemTime;
+    ///
+    /// match SystemTime::now().duration_since(SystemTime::UNIX_EPOCH) {
+    ///     Ok(n) => println!("1970-01-01 00:00:00 UTC was {} seconds ago!", n.as_secs()),
+    ///     Err(_) => panic!("SystemTime before UNIX EPOCH!"),
+    /// }
+    /// ```
+    #[unstable(feature = "assoc_unix_epoch", issue = "49502")]
+    pub const UNIX_EPOCH: SystemTime = UNIX_EPOCH;
+
     /// Returns the system time corresponding to "now".
     ///
     /// # Examples