2024-05-05 10:11:28 发布
网友
如何从时间戳/日期获取精确的时间
例如:
date = "2021-05-10T12:10:41"
答复是:
1 month 10 days ago
而不是
1 month ago
使用timeago包时
timeago
注意:我使用了ISO时间戳,因为这是来自API的响应,如果需要,我可以轻松地转换它
您可能需要查看dateutil-relativedelta:
from datetime import datetime from dateutil import relativedelta >>> relativedelta.relativedelta(datetime.now(), datetime.strptime("2021-05-10T12:10:41", "%Y-%m-%dT%H:%M:%S")) relativedelta(months=+1, days=+19, hours=+1, minutes=+13, seconds=+32, microseconds=+86719)
如果要将上述输出表示为字符串,可以尝试如下自定义函数:
def time_before_now(isodate): r = relativedelta.relativedelta(datetime.now(), datetime.strptime(isodate, "%Y-%m-%dT%H:%M:%S")) if r.months < 0: return f"{r.days} days" elif r.months == 1: return f"1 month and {r.days} days" else: return f"{r.months} months and {r.days} days" >>> time_before_now("2021-05-10T12:10:41") '1 month and 19 days'
您可能需要查看dateutil-relativedelta:
如果要将上述输出表示为字符串,可以尝试如下自定义函数:
相关问题 更多 >
编程相关推荐