Python 中用户友好的时间格式?

新手上路,请多包涵

Python:我需要以“1 天前”、“2 小时前”格式显示文件修改时间。

有什么东西可以做到吗?它应该是英文的。

原文由 flybywire 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 521
2 个回答

该代码最初发布在博客文章“Python Pretty Date 函数”( http://evaisse.com/post/93417709/python-pretty-date-function )

由于博客账号已被停用,页面无法访问,转载于此。

 def pretty_date(time=False):
    """
    Get a datetime object or a int() Epoch timestamp and return a
    pretty string like 'an hour ago', 'Yesterday', '3 months ago',
    'just now', etc
    """
    from datetime import datetime
    now = datetime.now()
    if type(time) is int:
        diff = now - datetime.fromtimestamp(time)
    elif isinstance(time, datetime):
        diff = now - time
    elif not time:
        diff = 0
    second_diff = diff.seconds
    day_diff = diff.days

    if day_diff < 0:
        return ''

    if day_diff == 0:
        if second_diff < 10:
            return "just now"
        if second_diff < 60:
            return str(second_diff) + " seconds ago"
        if second_diff < 120:
            return "a minute ago"
        if second_diff < 3600:
            return str(second_diff // 60) + " minutes ago"
        if second_diff < 7200:
            return "an hour ago"
        if second_diff < 86400:
            return str(second_diff // 3600) + " hours ago"
    if day_diff == 1:
        return "Yesterday"
    if day_diff < 7:
        return str(day_diff) + " days ago"
    if day_diff < 31:
        return str(day_diff // 7) + " weeks ago"
    if day_diff < 365:
        return str(day_diff // 30) + " months ago"
    return str(day_diff // 365) + " years ago"

原文由 Jed Smith 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您碰巧使用 Django ,那么 1.4 版中的新功能是 naturaltime 模板过滤器。

要使用它,首先将 'django.contrib.humanize' 添加到您的 INSTALLED_APPS settings.py 中的设置,并将 {% load humanize %} 添加到您正在使用的过滤器模板中。

然后,在您的模板中,如果您有一个日期时间变量 my_date ,您可以使用 {{ my_date|naturaltime }} 打印它与现在的距离,它将呈现为类似 4 minutes ago

Django 1.4 中的其他新功能。

naturaltimedjango.contrib.humanize 集中的其他过滤器的文档。

原文由 plowman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题