python.freelycode.com-Python日期时间处理: datestuff
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。
问题:
在一些场景下datetime包的使用并非那么简便易用,同时很难找到其他的较为完整的替代方案。
原因:
诚实地说,我非常喜爱datetime这个模块,几乎所有需要的操作都可以通过它实现。
但是,有一些情况下,datetime却并没有那么好用。比如:
1.创建日期时间范围
2.创建未固定的日期时间
3.检验两个日期时间的差值是否在一定的范围内。
以下是datestuff包的简略介绍:
RelativeDate和RelativeDateTime
这两个函数用来创建未固定的日期和时间,可以设置timedelta参数和factory method。
默认情况下,RelativeDate以date.today,RelativeDateTime以datetime.now作为默认的factory实现。两个功能都有初始默认timedelta(0):
但也可以使用其他的factory:
只要内部的factory能生成date或者datetime匹配的对象,那么都可以正常运行。这里的匹配是指date和datetime接口的匹配
另外,如果只是静态的偏移,你可以简单地通过设置timedelta 或 dateutil relativedelta来设置偏移。需要注意的是,目前timedelta 和 relativedelta不会相互干涉。
RelativeDate和RelativeDateTime还允许使用标准运算符(==,!=,>等)与date和datetime对象进行比较。 使得快速定义静态的date或者datetime边界(例如在serializer或ORM模型中)非常有用:
事实上,加法和减法是对它们的偏移量进行操作,而不是对date或datetime值操作。
另外还有一些函数可以构造日期和时间对象,每个都允许传递偏移量,但默认为timedelta():
RelativeDate.today: 默认的构造函数
RelativeDateTime.now: 默认的构造函数,允许设置tzinfo
RelativeDateTime.utcnow: 生成UTC的日期对象(注意:它依赖于datetime.utcnow函数)
RelativeDateTime.today: 默认的构造函数,不允许设置tzinfo
方便起见,也有一些构造静态时间对象的函数:
RelativeDate.fromdate: 构造常规的date对象
RelativeDateTime.fromdatetime: 构造常规的datetime对象
RelativeDateTime.fromdate: 在RelativeDateTime中鬼爪常规的date对象,可以设置tzinfo,类似于datetime.combine(the_date, time(tzinfo=tzinfo))
另外的静态构造函数,如datetime.strptime,如果需要的话,可以从以上函数中派生。
最后,在以上未直接提及的功能都被转换到date或datetime中实现。
DateRange
设置时间段我发现事自己经常需要的一种操作,然而,对于生成很长间隔的时间段来说是非常困难的。
相反,DateRange在Python3 range 基础上构建,该类型具有查找,迭代,索引和区间分割的功能(分割返回新的DateRange对象)
DateRange还允许通过忽略停止参数来创建开放式结束时间对象。如果使用len或者在分割或者索引选择中使用负值,该功能将不起作用。
目前,DateRange不支持relativedelta,它使用timedelta.total_seconds以确保Python 2和3的兼容。 这个问题也许在未来解决。然而,DateRange与date,datetime和timedelta的对象兼容。这一点也适用于RelativeDate和RelativeDateTime。
utils
目前,唯一的util是within_delta函数,它用于比较两个date或datetime(或类似)对象之差是否在某个设定时间区间中。
如果需要检验时间界限的话,这个函数用起来比DateRange或RelativeDate更加轻便。但坏消息时,它不能与relativedelta相互调用,因为它和timedelta对象是无序的(至少在Python 3是这样的)。
英文原文:https://github.com/justanr/datestuff
译者:alanf
python.freelycode.com-Python日期时间处理: datestuff相关推荐
- Python将字符串转换为日期时间
In this tutorial, we'll see how to convert string to datetime in python. 在本教程中,我们将看到如何在python中将字符串转换 ...
- Python处理ISO 8601日期时间
文章目录 一.ISO 8601日期时间 1. 简介 2. 格式 3. 时区划分 二.Python处理ISO 8601日期时间 1. 将 ISO 8601 转化为 UTC 标准日期时间 / 本地时间 2 ...
- Python 的6个日期时间库
曾几何时,我们中的一个人(Lacey)盯了一个多小时的python文档中描述日期和时间格式化字符串的表格.当我试图编写从 API 中将日期时间字符串转换为Python datetime对象时,我很难理 ...
- 邮件发送时间怎么修改 python_使用python通过电子邮件发送日期时间
我试图使用python脚本解析电子邮件的日期时间. 在我打开邮件时,邮件日期值如下所示... 1 2 3 4from: abcd@xyz.com to: def@xyz.com date: Tue, ...
- Python中的对日期时间的处理
我们可以通过学习在Python中对日期时间的处理,可以在快速的完成工作,比如: 将日期时间作为日志信息的内容输入 计算某一个功能的执行时间 用日期命名一个文件的名称 记录或者展示文件的发布或修改时间 ...
- python自学时间-Python中基本的日期时间处理的学习教程
Python程序能用很多方式处理日期和时间.转换日期格式是一个常见的例行琐事.Python有一个 time 和 calendar 模组可以帮忙. 什么是Tick? 时间间隔是以秒为单位的浮点小数. 每 ...
- Python—6.1、日期时间
文档目录 1.time模块 时间元组 格式化符号 日期转换 日历模块 2.datetime模块 2.1.日期时区 2.2.当前时间 2.3.常用操作 2.4.时间加减 3.dateutil模块 1.t ...
- [转载] python日期时间使用详解和定时器使用讲解
参考链接: Python日期时间 python中一个关于日期时间非常重要的模块是datetime模块,使用前先将它导入到项目中,import datetime. 获取当前时间 now=datetime ...
- Python常用日期时间格式转换总结
日期格式转换不外乎就是日期格式-字符串格式-数值格式之间的相互转换,以及相同格式的不同形式间的转换,最常用的是datetime模块,下面直接举例子说明如何进行转换. 1. 日期时间格式转字符 首先获取 ...
最新文章
- sql sever avg保留小数_《数据库系统概念》笔记 (一)SQL
- Logstash(一)的入门与运行机制
- 公平与精确同样重要!CMU提出学习公平表征方法,实现算法公平
- db2去除字段内容空格_Vue CLI3.x 配置指南生产环境去除console
- 成电计算机学院保研率,985一条街的街友们,我就想问问电子科技大学(成电)到底是什么水平的学校啊!...
- 龙芯3A4000 VNC配置
- UVA 10588—— Queuing at the doctors
- Git 常用命令整理(持续更新)
- 简述Java Object类中的方法有哪些
- dcmtk编译 android,Win10编译Android可用的DCMTK-SO库
- gs地图开发_中国地图全图高清版大图审图号GS(2016)2923号
- Allegro导出pdf的两种方式
- 紫外线测光仪的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- pandas系列学习(七):数据透视表
- 创新实践 | SaaS增长新趋势:产品驱动增长PLG(下)
- 朱松纯教授:可解释性是人工智能获得人类信任的关键
- 数据库1NF 2NF 3NF范式解释
- 基于Unity3D的相机功能的实现(六)—— 上帝视角(王者荣耀视角)
- 论文阅读 (64):Weakly-supervised Video Anomaly Detection with Robust Temporal Feature Magnitude Learning
- 【官方文档】Fluent Bit 概念