将相对字符串标记转换为DateTime对象

datetoken的Python项目详细描述


此包允许您将复杂的相对日期存储在字符串标记中。

  • 定义初始/起始时间点(通常写为now),以 使用过去或将来的日期。理想的约会对象 仿真。

  • 时区配置。除了时间上的起点,tzs 可以提供给以某种方式将用户从本地化中抽象出来 datetimes应用程序中的对象。

    作为免责声明,如果将自定义日期时间指定为起点 (now的值)是Tz不知道或幼稚的,将被视为UTC值。 默认的现在的值也会回落到datetime.datetime.utcnow,本地化 到UTC。

    现在,如果指定了时区,则now的值将强制为 在应用捕捉表达式和修饰符表达式之前。这很方便 若要在给定的任何时间点(天真的或意识到的)快速解析令牌,请 时区和DateToken本身。

动机

你是否需要在需要日期的地方申请 以相对方式表示,如背景周期 任务,日期时间范围选取器…以压缩和字符串格式?这个 库使您能够在 因为计算是在 评价。当缓存URL作为替换时,这些令牌也很有用 因为时间戳的易变性,它会破坏缓存。

相对标记的一些常见示例:

  • 今天:now/dnow
  • 昨天:now-d/dnow-d@d
  • 最后24小时:now-1dnow。也可写为:now-24hnow
  • 上一个工作周:^{TT10}$,^{TT11}$
  • 本周:^{TT12}$,^{TT13}$
  • 上个月:now-1M/Mnow-1M@M
  • 上个月第一个工作周:now-M/M+w/bwnow-M/M+w@bw

您可能已经注意到,令牌遵循以下模式:

  • 单词now。它意味着未来时间线中 令牌被解析为它们的datetime形式。

  • (可选)添加和/或减去 now可以使用。毫不奇怪,加法是通过+设置的,而 -平均减法。这些修饰符可以被链接多次 根据需要。例如:now-1M+3d+2h。连同算术符号 金额,金额所指的时间单位必须是 明确规定。目前,支持的单位是:

    • s
    • m分钟
    • h小时
    • d
    • w
    • M个月
  • < > >可选地,存在两个额外的修饰符来对日期进行扣押。 任何给定快照单元的开始或结束。这些是:

    • /将日期捕捉到快照单元的开始位置。
    • @将日期捕捉到快照单元的末尾。

    快照单元与算术修饰符相同,加上bw, 意思是business week。通过这个,我们实现了一个简单的定义 规范的相对日期范围,例如todaylast month。作为 后面的示例:

    • 字符串表示:now-1M/Mnow-1M@M
    • 今天2018年1月15日,结果范围应该是:2018-01-01 00:00:00/2018-01-31 23:59:59

安装

通过pipenvpip安装和更新

pipenv install datetoken

pip install datetoken

示例和用法

很可能您将处理简单的预设,如 昨天过去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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在Java中比较忽略大小写的字符串   Swing应用程序中的java本机接口Jni字体错误   在maven spark java应用程序中运行html文件的javascript   JavaMaven和jboss模块   会话过期后java自动注销   java Android警报对话框强制关闭错误   java为分级栏添加边距/填充   java JPanel在使用BoxLayout时不会调整大小   java如何在编辑JTable的JSpinner单元格后重新应用或重新提交我的JTable   java异步任务FTP上载Android服务崩溃?   java如何从对象列表中获取字符串属性数组   java在许多片段中使用BroadcastReceiver   java Sockets聊天应用NotSerializableException   Java audio无法在Linux中播放wav文件   空的花括号/大括号在Java中是什么意思?   intellij idea如何告诉草书Clojure模块依赖于本地Java/Scala模块?   swing Java键绑定在按住键的同时触发按下和释放   当使用via时,java Log4j不显示行记录。jar文件