转换' 4天前'等到实际日期

时间:2015-03-03 13:49:01

标签: python-2.7 datetime time countdown

我有一个庞大的电子表格,其中所有日期都是这样写的:

2 days ago 
9 days ago
34 days ago
54 days ago
etc.

是否有一种聪明的Python方法可以将这些数据转换为实际日期,如果我告诉Python什么日期' 1天前'是

2 个答案:

答案 0 :(得分:3)

使用timedelta

从电子表格中的该字符串中提取值,然后使用

d = date.today() - timedelta(days_to_subtract)

答案 1 :(得分:2)

如果输入日期格式可能略有不同(人工输入),那么您可以使用parsedatetime module将人类可读的日期/时间文本解析为datetime个对象:

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

now = datetime(2015, 3, 8) # the reference date
cal = parsedatetime.Calendar()
for line in sys.stdin: # at most one date per line
    dt, type = cal.parseDT(line, now)
    if type > 0:
        print(dt)

输出

2015-03-06 00:00:00
2015-02-27 00:00:00
2015-02-02 00:00:00
2015-01-13 00:00:00