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

标签 python datetime date time formatting

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

有什么可以做的吗?应该是英文的。

最佳答案

代码最初发表在一篇博文“Python Pretty Date function”(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"

关于python - Python中用户友好的时间格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551382/

相关文章:

python - 我正在犯什么语法错误?

javascript - 将 ajax 返回的 (json) 日期转换为 javascript 日期(在 IE 9 中不起作用)

javascript - Moment.js 检查日期是今天

python - 这个表达式是如何计算的? "f"中的 "foo"== 真

python - 如何获取字符列表中的所有子字符串(python)

python - 如何使用 Pandas 中每天变化的固定引用进行计算?

python - 如何更改 Python 中所有模块的日期/时间?

iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法

iphone - Objective-C String(yyyy-mm-dd) 到 NSDate

mysql - 如何获取数据库中最近一个月的数据?