#date-time #pretty-print #date

pretty_date

A rust library for the simple, friendly, human readable formatting of the chrono NaiveDateTime

3 releases

0.1.2 Jan 4, 2023
0.1.1 Jan 3, 2023
0.1.0 Jan 3, 2023

#266 in Value formatting

Download history 44/week @ 2024-12-10 33/week @ 2024-12-17 25/week @ 2024-12-24 64/week @ 2024-12-31 118/week @ 2025-01-07 47/week @ 2025-01-14 38/week @ 2025-01-21 21/week @ 2025-01-28 103/week @ 2025-02-04 70/week @ 2025-02-11 158/week @ 2025-02-18 145/week @ 2025-02-25 119/week @ 2025-03-04 206/week @ 2025-03-11 41/week @ 2025-03-18 76/week @ 2025-03-25

533 downloads per month
Used in timeline-service

MIT/Apache

13KB
178 lines

Pretty Date

A rust library for the simple, friendly, human readable formatting for the chrono NaiveDateTime, for example:

  • Within the last ten minutes: Just now
  • Earlier today: 20:56 Today
  • Earlier in the year: 5 September, 23:56

Usage

Add this to your Cargo.toml:

[dependencies]
pretty_date = "0.1.2"

Basic default usage:

use chrono::NaiveDateTime;
use pretty_date::pretty_date_formatter::PrettyDateFormatter;

fn main() {
    let date = NaiveDateTime::parse_from_str("2015-09-05 23:56:04", "%Y-%m-%d %H:%M:%S").unwrap();
    println!("{}", date.format_pretty());
}

Advanced usage:

use chrono::NaiveDateTime;
use pretty_date::pretty_date_format::PrettyDateFormat;
use pretty_date::pretty_date_rule::PrettyDateRule;

fn main() {
    let date = NaiveDateTime::parse_from_str("2015-09-05 23:56:04", "%Y-%m-%d %H:%M:%S").unwrap();
    let date_format = PrettyDateFormat {
        rules: vec![
            PrettyDateRule::Today,
            PrettyDateRule::ThisYear,
        ],
        default_format: "%-e %B %Y, %H:%M",
    };
    println!("{}", date_format.format_pretty(&date));
}

License

Rand is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT, and COPYRIGHT for details.

Dependencies

~1MB
~18K SLoC