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



我有一个调度程序,它将启动任务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的相对德尔塔正是我上面描述的!

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

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

相关内容

  • 没有找到相关文章

最新更新