Dateutil的相对日期基数

时间:2015-01-22 00:34:58

标签: python date python-dateutil

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

有没有解决方法呢?

1 个答案:

答案 0 :(得分:1)

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