#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

#388 in Date and time

Download history 6/week @ 2024-04-04 4/week @ 2024-05-30 6/week @ 2024-06-20 288/week @ 2024-06-27 59/week @ 2024-07-04 134/week @ 2024-07-11 32/week @ 2024-07-18

515 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