一种以字符串形式存储相对日期的方法

时间:2013-02-25 17:50:50

标签: python django datetime

我有一个调度程序将触发任务 T T 的一些参数非常依赖于日期。例如,如果 T 在星期二运行,则某些参数将为:

param1 = datetime('Monday at 1pm')
param2 = datetime('Tuesday at 1am')

参数可以根据运行 T 的时间而变化。因此,例如,如果它在星期日运行,则参数可以是:

param1 = datetime('Saturday at 12pm')
param2 = datetime('Sunday at 12pm')

等等。想法是日期是相对于 T 运行的时间,但是我不能使用timedelta,因为我不确切知道什么时候运行任务,所以我想要保留对日期的绝对控制程度。

现在,将启动 T 的代码有一个指定参数的小json包。我正在编写一个小脚本语言,允许我指定相对日期。它看起来像是:

date1: { 
    'type': 'datetime', 
    'source': 'composite', 
    'value': '(Yn)-(Mn)-(Dn)-(Hn)-(Nn)'
}

将解析value字符串,并根据括号中的内容编译参数。因此,例如,如果value类似于(Y:n)-(M:n)-(D:-1)-(H:18)-(N:00),则会使用当前年份,当前月份,上一个日期,18:00构建日期。

我是否试图用这些东西重新发明轮子。是否有图书馆可以让我的生活更轻松?


编辑:看起来像Date-Utils的Relative Delta完全符合我上面的描述!

1 个答案:

答案 0 :(得分:3)

对于人类可读的日期/时间解析,您可以使用parsedatetime

我会按原样存储“人类可读”字符串,并在需要时对其进行评估。