A very simple python lib, used to format datetime with *** time ago
statement. Javascript version here. timeago.js.
Such as:
just now 12 seconds ago 3 minutes ago 2 hours ago 24 days ago 6 months ago 2 years ago in 12 seconds in 3 minutes in 2 hours in 24 days in 6 months in 2 years
For other languages see below.
pip install timeago
# -*- coding: utf-8 -*-
import timeago, datetime
now = datetime.datetime.now() + datetime.timedelta(seconds = 60 * 3.4)
date = datetime.datetime.now()
# locale
print (timeago.format(date, now, 'zh_CN')) # will print `3分钟前`
# input datetime
print (timeago.format(date, now)) # will print 3 minutes ago
# input timedelta
print (timeago.format(datetime.timedelta(seconds = 60 * 3.4))) # will print 3 minutes ago
# input date, auto add time(0, 0, 0)
print (timeago.format(datetime.date(2016, 5, 27), now))
# input datetime formatted string
print (timeago.format('2016-05-27 12:12:03', '2016-05-27 12:12:12')) # will print just now
# inverse two parameters
print (timeago.format('2016-05-27 12:12:12', '2016-05-27 12:12:03')) # will print a while
only one API format
.
Three parameters of method format
:
date
: the parameter which will be formatted, must be instance ofdatetime
/timedelta
or datetime formatted string.now
: reference time, must be instance ofdatetime
or datetime formatted string.locale
: the locale code, defaulten
.
At the time we're speaking, following locale are available:
ar
bg
ca
da
de
el
en
en_short
es
eu
fa_IR
fi
fr
gl
guj_IN
he
hu
in_BG
in_HI
in_ID
is
it
ja
ko
lt
ml
my
nb_NO
nl
nn_NO
pl
pt_PT
pt_BR
ro
ru
sv_SE
ta
th
tr
uk
vi
zh_CN
zh_TW
- Fork the project
- Create a locale python script called
[name_of_your_locale].py
following the existing other locales. - Add the name of your locale in the Readme to keep it updated (alphabetically).
- Add test case following the english model
- Create the Pull Request.
For complicated plurals, you can take example on the PL (Polish) locale here