diff --git a/src/uu/dmesg/src/time_formatter.rs b/src/uu/dmesg/src/time_formatter.rs
index 8c09907..d2d7287 100644
--- a/src/uu/dmesg/src/time_formatter.rs
+++ b/src/uu/dmesg/src/time_formatter.rs
@@ -73,12 +73,10 @@ impl ReltimeFormatter {
     fn delta(delta_us: i64) -> String {
         let seconds = i64::abs(delta_us / 1000000);
         let sub_seconds = i64::abs(delta_us % 1000000);
-        let sign = if delta_us >= 0 { 1.0 } else { -1.0 };
-        format!(
-            "{:>+4.0}.{:0>6}",
-            sign * f64::from(seconds as i32),
-            sub_seconds
-        )
+        let sign = if delta_us >= 0 { '+' } else { '-' };
+        let mut res = format!("{}.{:0>6}", seconds, sub_seconds);
+        res.insert(0, sign);
+        format!("{:>11}", res)
     }
 }
 
@@ -106,12 +104,11 @@ impl DeltaFormatter {
     fn delta(delta_us: i64) -> String {
         let seconds = i64::abs(delta_us / 1000000);
         let sub_seconds = i64::abs(delta_us % 1000000);
-        let sign = if delta_us >= 0 { 1.0 } else { -1.0 };
-        format!(
-            "<{:>5.0}.{:0>6}>",
-            sign * f64::from(seconds as i32),
-            sub_seconds
-        )
+        let mut res = format!("{}.{:0>6}", seconds, sub_seconds);
+        if delta_us < 0 {
+            res.insert(0, '-');
+        }
+        format!("<{:>12}>", res)
     }
 }