#date #pretty-print #date-format #date-time #formatting #human-readable #chrono

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

#589 in Date and time

Download history 88/week @ 2024-07-25 82/week @ 2024-08-01 61/week @ 2024-08-08 49/week @ 2024-08-15 36/week @ 2024-08-22 7/week @ 2024-08-29 9/week @ 2024-09-05 18/week @ 2024-09-12 103/week @ 2024-09-19 109/week @ 2024-09-26 86/week @ 2024-10-03 69/week @ 2024-10-10 153/week @ 2024-10-17 70/week @ 2024-10-24 71/week @ 2024-10-31 50/week @ 2024-11-07

385 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