- Notifications
You must be signed in to change notification settings - Fork17
In Rust, format Duration into a string like "1 hour ago" or "01hou".
License
Apache-2.0, MIT licenses found
Licenses found
vi/timeago
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
In Rust, format Duration into string like "1 hour ago" or "01hou".
Currently it does nottake the calendar into account and assumes each month is about 30.4 days long.
Parsing such string back to aDuration
is out of scope for this crate. Maybe see thechrono-english
crate instead.
Withisolang
feature off, it supports Rust from version 1.24.
Simplified API excerpt (pseudocode):
pubstructFormatter<L:Language =English>{...}implFormatter{pubfnnew() ->Formatter<English>;pubfnwith_language(l:Language) ->Self;pubfnnum_items(&mutself,x:usize) ->&mutSelf;pubfnmax_unit(&mutself,x:TimeUnit) ->&mutSelf;pubfnmin_unit(&mutself,x:TimeUnit) ->&mutSelf;pubfntoo_low(&mutself,x:&'staticstr) ->&mutSelf;pubfntoo_high(&mutself,x:&'staticstr) ->&mutSelf;pubfnmax_duration(&mutself,x:Duration) ->&mutSelf;pubfnago(&mutself,x:&'staticstr) ->&mutSelf;pubfnconvert(&self,d:Duration) ->String;pubfnconvert_chrono(&self,from: chrono::DateTime,to: chrono::DateTime) ->String;}pubfnfrom_isolang(x: isolang::Language) ->Option<Box<Language>>;pubfnformat_5chars(d:Duration) ->String;
ALanguage
can be constructed fromisolang::Language.
- English
- Russian
- French
- Portuguese (contributed)
- German (unchecked)
- Belarusian (unchecked)
- Polish (unchecked)
- Spanish (contributed)
- Chinese (contributed)
- Romanian (contributed)
- Swedish (contributed)
- Turkish (contributed)
- Japanese (contributed)
- Danish (contributed)
- Italian (contributed)
- Ukrainian (contributed)
If you checked some language and certify that it's allright, submit a pull request that removes "(unchecked)" or "(contributed)" in the list above.
There is a helper command line tool that allows easier experimenting when adding a new translation:
$ cargo run --features isolang en Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs Running `target/debug/timeago en`601 minute ago72002 hours ago
- chrono-humanize
- compound_duration - split
Duration
into weeks/days/minues/etc. parts
About
In Rust, format Duration into a string like "1 hour ago" or "01hou".