精确的时间

2024-05-05 10:11:28 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从时间戳/日期获取精确的时间

例如:

date = "2021-05-10T12:10:41"

答复是:

1 month 10 days ago

而不是

1 month ago

使用timeago包时

注意:我使用了ISO时间戳,因为这是来自API的响应,如果需要,我可以轻松地转换它


1条回答
网友
1楼 · 发布于 2024-05-05 10:11:28

您可能需要查看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'

相关问题 更多 >