使用 Dateutil 的相对日期基准

Relative Date Base with Dateutil

我正在尝试使用 Python 解析相对日期(今天 4:00,明天 10:00,昨天 8:00,等等) 19=] 但想提供一个 "today" 日期作为实际使用的基础。问题是我可能正在查看昨天创建的内容,但其内容中仍有 "today",因此 dateutil.parse 没有解析出真正的 DateTime。

有什么解决方法吗?

dateutil.parser.parse() function has default parameter but it doesn't parse relative human-readable dates. You could use 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