[][src]Crate chrono_locale

This is an extension to chrono's date and time formatting to automatically translate dates to a specified locale or language


Put this in your Cargo.toml:

chrono = "0.4"
chrono_locale = "0.1"

Then put this in your lib.rs or main.rs:

extern crate chrono;
extern crate chrono_locale;

use chrono::prelude::*;
use chrono_locale::LocaleDate;

You can choose to import just parts of chrono instead of the whole prelude. Please see 'chrono`'s documentation.

To format a chrono Date or DateTime object, you can use the formatl method:

let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
println!("{}", dt.formatl("%c", "fr"));

All of chrono's formatting placeholders work except for %3f, %6f and %9f (but %.3f, %.6f and %.9f work normally)

Locale format

The formatl method supports locales in different formats, based on ISO-639-1 and ISO-3166. It accepts any format where they are separated by - or _:

  • en_GB
  • it-IT
  • fr-fr
  • PT_br

The translated string will be first searched in the complete locale definition, then in the fallbacks. For example: by requesting it_IT it will first try in it-it, then in it and, if it still doesn't find it, it will use the default: C (english)



A temporary object which can be used as an argument to format! or others. This is normally constructed via format methods of each date and time type.





This function is nearly entirely copied from chrono's format() internal formats (3, 6 and 9-digits nanoseconds) have been disabled due to lack of access to chrono internals