User-friendly time format in Python?

后端 未结 14 1540
[愿得一人]
[愿得一人] 2020-12-12 10:06

Python: I need to show file modification times in the \"1 day ago\", \"two hours ago\", format.

Is there something ready to do that? It should be in English.

14条回答
  •  渐次进展
    2020-12-12 10:54

    DAY_INCREMENTS = [
        [365, "year"],
        [30, "month"],
        [7, "week"],
        [1, "day"],
    ]
    
    SECOND_INCREMENTS = [
        [3600, "hour"],
        [60, "minute"],
        [1, "second"],
    ]
    
    
    def time_ago(dt):
        diff = datetime.now() - dt  # use timezone.now() or equivalent if `dt` is timezone aware
        if diff.days < 0:
            return "in the future?!?"
        for increment, label in DAY_INCREMENTS:
            if diff.days >= increment:
                increment_diff = int(diff.days / increment)
                return str(increment_diff) + " " + label + plural(increment_diff) + " ago"
        for increment, label in SECOND_INCREMENTS:
            if diff.seconds >= increment:
                increment_diff = int(diff.seconds / increment)
                return str(increment_diff) + " " + label + plural(increment_diff) + " ago"
        return "just now"
    
    
    def plural(num):
        if num != 1:
            return "s"
        return ""
    

提交回复
热议问题