|
1 | 1 | use std::fmt; |
2 | 2 | use std::time::SystemTime; |
3 | 3 |
|
4 | | -use humantime::{ |
5 | | - format_rfc3339_micros, format_rfc3339_millis, format_rfc3339_nanos, format_rfc3339_seconds, |
6 | | -}; |
7 | | - |
8 | 4 | use crate::fmt::{Formatter, TimestampPrecision}; |
9 | 5 |
|
10 | 6 | impl Formatter { |
@@ -99,14 +95,16 @@ impl fmt::Debug for Timestamp { |
99 | 95 |
|
100 | 96 | impl fmt::Display for Timestamp { |
101 | 97 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
102 | | - let formatter = match self.precision { |
103 | | - TimestampPrecision::Seconds => format_rfc3339_seconds, |
104 | | - TimestampPrecision::Millis => format_rfc3339_millis, |
105 | | - TimestampPrecision::Micros => format_rfc3339_micros, |
106 | | - TimestampPrecision::Nanos => format_rfc3339_nanos, |
| 98 | + let Ok(ts) = jiff::Timestamp::try_from(self.time) else { |
| 99 | + return Err(fmt::Error); |
107 | 100 | }; |
108 | 101 |
|
109 | | - formatter(self.time).fmt(f) |
| 102 | + match self.precision { |
| 103 | + TimestampPrecision::Seconds => write!(f, "{ts:.0}"), |
| 104 | + TimestampPrecision::Millis => write!(f, "{ts:.3}"), |
| 105 | + TimestampPrecision::Micros => write!(f, "{ts:.6}"), |
| 106 | + TimestampPrecision::Nanos => write!(f, "{ts:.9}"), |
| 107 | + } |
110 | 108 | } |
111 | 109 | } |
112 | 110 |
|
|
0 commit comments