将相对字符串标记转换为DateTime对象
datetoken的Python项目详细描述
此包允许您将复杂的相对日期存储在字符串标记中。
定义初始/起始时间点(通常写为now),以 使用过去或将来的日期。理想的约会对象 仿真。
时区配置。除了时间上的起点,tzs 可以提供给以某种方式将用户从本地化中抽象出来 datetimes应用程序中的对象。
作为免责声明,如果将自定义日期时间指定为起点 (now的值)是Tz不知道或幼稚的,将被视为UTC值。 默认的现在的值也会回落到datetime.datetime.utcnow,本地化 到UTC。
现在,如果指定了时区,则now的值将强制为 在应用捕捉表达式和修饰符表达式之前。这很方便 若要在给定的任何时间点(天真的或意识到的)快速解析令牌,请 时区和DateToken本身。
动机
你是否需要在需要日期的地方申请 以相对方式表示,如背景周期 任务,日期时间范围选取器…以压缩和字符串格式?这个 库使您能够在 因为计算是在 评价。当缓存URL作为替换时,这些令牌也很有用 因为时间戳的易变性,它会破坏缓存。
相对标记的一些常见示例:
- 今天:now/d,now
- 昨天:now-d/d,now-d@d
- 最后24小时:now-1d,now。也可写为:now-24h, now
- 上一个工作周:^{TT10}$,^{TT11}$
- 本周:^{TT12}$,^{TT13}$
- 上个月:now-1M/M,now-1M@M
- 上个月第一个工作周:now-M/M+w/bw,now-M/M+w@bw
您可能已经注意到,令牌遵循以下模式:
单词now。它意味着未来时间线中 令牌被解析为它们的datetime形式。
(可选)添加和/或减去 now可以使用。毫不奇怪,加法是通过+设置的,而 -平均减法。这些修饰符可以被链接多次 根据需要。例如:now-1M+3d+2h。连同算术符号 金额,金额所指的时间单位必须是 明确规定。目前,支持的单位是:
- s秒
- m分钟
- h小时
- d天
- w周
- M个月
< > >可选地,存在两个额外的修饰符来对日期进行扣押。
任何给定快照单元的开始或结束。这些是:- /将日期捕捉到快照单元的开始位置。
- @将日期捕捉到快照单元的末尾。
- 字符串表示:now-1M/M,now-1M@M
- 今天2018年1月15日,结果范围应该是:2018-01-01 00:00:00/2018-01-31 23:59:59
快照单元与算术修饰符相同,加上bw, 意思是business week。通过这个,我们实现了一个简单的定义 规范的相对日期范围,例如today或last month。作为 后面的示例:
示例和用法
很可能您将处理简单的预设,如 昨天或过去24小时。
>>>fromdatetoken.utilsimporttoken_to_date>>>fromdatetimeimportdatetime>>>print(datetime.utcnow())2018-10-1814:08:47>>>token_to_date('now-d/d')# Start of yesterday2018-10-1700:00:00>>>token_to_date('now-d@d')# End of yesterday2018-10-1723:59:59
有关详细信息,请参阅README。