首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用户友好的Python时间格式?

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

Stack Overflow用户
提问于 2009-10-12 02:28:45
回答 12查看 35.7K关注 0票数 74

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

有什么东西准备好这么做了吗?它应该是英文的。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-10-12 02:32:06

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

它在这里被复制,因为博客帐户已被暂停,该页面不再可用。

代码语言:javascript
复制
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 = now - now
    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"
票数 129
EN

Stack Overflow用户

发布于 2012-04-02 08:49:47

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

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

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

Other new things in Django 1.4.

Documentation for naturaltime and other filters in the django.contrib.humanize set.

票数 30
EN

Stack Overflow用户

发布于 2010-04-10 10:03:36

在寻找与处理未来日期的额外需求相同的东西时,我发现了这个:http://pypi.python.org/pypi/py-pretty/1

示例代码(来自网站):

代码语言:javascript
复制
from datetime import datetime, timedelta
now = datetime.now()
hrago = now - timedelta(hours=1)
yesterday = now - timedelta(days=1)
tomorrow = now + timedelta(days=1)
dayafter = now + timedelta(days=2)

import pretty
print pretty.date(now)                      # 'now'
print pretty.date(hrago)                    # 'an hour ago'
print pretty.date(hrago, short=True)        # '1h ago'
print pretty.date(hrago, asdays=True)       # 'today'
print pretty.date(yesterday, short=True)    # 'yest'
print pretty.date(tomorrow)                 # 'tomorrow'
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1551382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档