diff options
Diffstat (limited to 'ranger/ext/human_readable.py')
-rw-r--r-- | ranger/ext/human_readable.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ranger/ext/human_readable.py b/ranger/ext/human_readable.py index 385e56f4..2a5bc81b 100644 --- a/ranger/ext/human_readable.py +++ b/ranger/ext/human_readable.py @@ -3,6 +3,7 @@ from __future__ import (absolute_import, division, print_function) +from datetime import datetime from ranger.core.shared import SettingsAware @@ -54,6 +55,21 @@ def human_readable(byte, separator=' '): # pylint: disable=too-many-return-stat return '>9000' +def human_readable_time(timestamp): + """Convert a timestamp to an easily readable format. + """ + # Hard to test because it's relative to ``now()`` + date = datetime.fromtimestamp(timestamp) + datediff = datetime.now().date() - date.date() + if datediff.days >= 365: + return date.strftime("%-d %b %Y") + elif datediff.days >= 7: + return date.strftime("%-d %b") + elif datediff.days >= 1: + return date.strftime("%a") + return date.strftime("%H:%M") + + if __name__ == '__main__': import doctest doctest.testmod() |