#format-time #chrono #xxx

bin+lib hhmmss

Format time and duration in chrono, std::time and time as HH:MM:SS and HH:MM:SS.xxx

1 unstable release

0.1.0 Oct 10, 2020

#13 in #format-time

Download history 127/week @ 2024-05-21 180/week @ 2024-05-28 173/week @ 2024-06-04 119/week @ 2024-06-11 123/week @ 2024-06-18 135/week @ 2024-06-25 52/week @ 2024-07-02 98/week @ 2024-07-09 124/week @ 2024-07-16 122/week @ 2024-07-23 239/week @ 2024-07-30 469/week @ 2024-08-06 236/week @ 2024-08-13 162/week @ 2024-08-20 577/week @ 2024-08-27 377/week @ 2024-09-03

1,425 downloads per month
Used in 8 crates

MIT license

6KB
81 lines

hhmmss

Format time and duration in chrono, std::time and time as HH:MM:SS or HH:MM:SS.xxx.

Why?

I just wanted to format chrono::Duration as HH:MM:SS in some of my crates. However there isn't a ready-to-use method for this. Format is only supported for instances. Neither time nor std::time's Duration support this. So I made this crate, mainly for my own convinience.

Usage

Add hhmmss to Cargo.toml:

[dependencies]
hhmmss = "0.1"

Then:

use hhmmss::Hhmmss;

fn main() {
    let std_duration = std::time::Duration::new(3661, 534_000_000);
    assert_eq!(&std_duration.hhmmss(), "01:01:01");
    assert_eq!(&std_duration.hhmmssxxx(), "01:01:01.534");
    let chrono_duration = chrono::Duration::from_std(std_duration).unwrap(); // needs chrono
    assert_eq!(&chrono_duration.hhmmss(), "01:01:01"); 
    assert_eq!(&chrono_duration.hhmmssxxx(), "01:01:01.534");
    let time_duration = time::Duration::from_std(std_duration).unwrap(); // needs time
    assert_eq!(&time_duration.hhmmss(), "01:01:01");
    assert_eq!(&time_duration.hhmmssxxx(), "01:01:01.534");
}

Dependencies

~3.5MB
~69K SLoC