python - 使用 Dateutil 的相对日期基准

标签 python date python-dateutil

我正在尝试使用 dateutil.parse 使用 Python 解析相对日期(今天 4:00、明天 10:00、昨天 8:00 等),但想提供一个“今天”日期实际上用作基础。问题是我可能正在查看昨天创建的内容,但其内容中仍然包含“今天”,因此 dateutil.parse 不会解析出真正的日期时间。

有什么解决办法吗?

最佳答案

dateutil.parser.parse() function has default parameter但它不解析相对的人类可读日期。您可以使用 parsedatetime module为此:

#!/usr/bin/env python
from datetime import datetime
import parsedatetime # $ pip install parsedatetime

today = datetime(2015, 1, 1)
calendar= parsedatetime.Calendar()
for timestring in [
        "today at 4:00", 
        "tomorrow at 10:00", 
        "yesterday at 8:00"]:
    d, parsed_as = calendar.parseDT(timestring, today)
    assert parsed_as == 3 # as datetime
    print(d)

输出

2015-01-01 04:00:00
2015-01-02 10:00:00
2014-12-31 08:00:00

关于python - 使用 Dateutil 的相对日期基准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079465/

相关文章:

mysql - 比较 MySQL 中的两个 ISO 日期时间字符串

python - 任何使用 rrule 向后移动的方法

Python Dateutil解析: Minimum number of components

python - 从 PIL 图像或 StringIO 将图像插入 Reportlab

python - 平衡 numpy 数组与过采样

python - 为什么 pip 在 vi​​rtualenv 中写入/usr/lib?

python - 使用 dateutil 解析日期时出现问题

python - 带有 NEAT 的 pygame 的 flappy bird 游戏中不显示管道

mysql - 如何在 mysql 上确定每个月的 1 号和 15 号

javascript - 格式日期为 dd/MM/yyyy hh :mm:ss to yyyy/MM/dd hh:mm:ss Angular JS/JavaScript