【问题标题】:Human time and when to datetime?人类时间和日期时间?
【发布时间】:2021-05-20 01:51:12
【问题描述】:

我正在尝试构建一个 dpy 命令,我可以在其中获取一个字符串,例如“Tomorrow at 6pm do the dishes”,然后获取一个日期时间对象和一个字符串。

我可以轻松地将所有内容转换为 dpy 的自定义转换器,我只需要一些帮助来解析字符串。有点像这样(不是真正的代码示例):

@bot.command()
async def remind(ctx, *, when: TimeConverter):
    print(when.reason)
    print(when.datetime)
!remind 6h do the dishes
!remind two days do the dishes

我找到了一个名为dateparser 的库,它将人类可读的时间转换为日期时间,但它无法处理我想要的。我该怎么做这样的事情?

【问题讨论】:

  • 什么是“人类可读时间”?
  • 您是否看到您链接的dateparser 有一个search

标签: python datetime discord.py date-parsing


【解决方案1】:

好吧,如果您能以5h 之类的格式获取字符串,您就可以将指标分开。这就是 Dyno 和 Mee6 等流行机器人处理静音计时器的方式。

from datetime import datetime, timedelta

when = when.lower()
seconds = int(when[:-1]) * {"s": 1, "m": 60, "h": 3600, "d": 86400}[when[-1]]
time = datetime.utcnow() + timedelta(seconds=seconds)

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2021-12-23
    • 1970-01-01
    • 2011-08-21
    • 2013-06-16
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    相关资源
    最近更新 更多