about summary refs log tree commit diff stats
path: root/ranger/ext/human_readable.py
diff options
context:
space:
mode:
Diffstat (limited to 'ranger/ext/human_readable.py')
-rw-r--r--ranger/ext/human_readable.py16
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()