def moment(dt, now): diff = now - dt if diff.days < 0: return "未来时间" if diff.days > 365: return dt.strftime('%Y年%m月') if diff.days > 30: return dt.strftime('%Y年%m月%d日') if diff.days > 1: return '{}天前'.format(diff.days) if diff.seconds // 60 // 60 > 0: return '{}小时前'.format(diff.seconds // 60 // 60) if diff.seconds // 60 > 0: return '{}分钟前'.format(diff.seconds // 60) if diff.seconds >= 0: return '{}秒前'.format(diff.seconds) from datetime import datetime from program8_2_moment_module import moment if __name__ == '__main__': now = datetime(2020, 2, 29, 9, 30, 30) for dt in [ datetime(2018, 3, 1, 9, 0, 0), datetime(2020, 1, 1, 9, 0, 0), datetime(2020, 2, 1, 9, 0, 0), datetime(2020, 2, 29, 8, 0, 0), datetime(2020, 2, 29, 9, 29, 20), datetime(2020, 2, 29, 9, 29, 50), datetime(2020, 2, 29, 9, 30, 40), ]: print('{} -> {}: {}'.format(dt, now, moment(dt, now)))
时间: 2024-04-26 17:25:36 浏览: 67
Python库 | django-fast-ratelimit-0.5.0.1.tar.gz
这段代码是一个Python的时间格式化函数moment的示例,用于将输入的时间转换为类似“1天前”、“2小时前”、“刚刚”等易于理解的中文时间格式。
在这段代码中,moment函数接受两个参数dt和now,分别表示需要格式化的时间和当前时间。它首先通过计算两个时间之间的差值diff来确定时间间隔,然后根据时间间隔的大小返回不同的时间格式。
具体来说,如果时间间隔小于0,则返回“未来时间”;如果时间间隔大于365天,则返回形如“2020年01月”的时间格式;如果时间间隔大于30天,则返回形如“2020年01月01日”的时间格式;如果时间间隔大于1天,则返回形如“2天前”的时间格式;如果时间间隔大于1小时,则返回形如“3小时前”的时间格式;如果时间间隔大于1分钟,则返回形如“5分钟前”的时间格式;最后,如果时间间隔小于1分钟,则返回“刚刚”。
在代码的最后,它使用datetime模块创建了一个当前时间的示例now,并使用moment函数对一系列不同的时间进行格式化并输出。
阅读全文