Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

快捷处理日期的Python库,支持从字符串解析日期,灵活实现加减日、周、月、年、时、分、秒的时间操作

License

Notifications You must be signed in to change notification settings

cador/quickdate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

10 Commits

Repository files navigation

quickdate

快捷处理日期的Python库,支持从字符串解析日期,灵活实现加减日、周、月、年、时、分、秒的时间操作

如何安装?

pip install quickdate

如何使用

qucickdate默认以今天的起点,开始定位日期,当然你也可以使用DateLocate.parse方法,从字符串解析一个日期,并以此为起点

支持的主要函数是 add 函数,可以动态传入 days、weeks、months、years、hours、minutes、seconds参数,并返回为 DateLocate对象本身

这意味着,可以链式定位日期,更为方便快捷

>>> from quickdate.quickdate import DateLocate
>>> DateLocate().format("%Y-%m-%d")
2023-08-21
>>> from quickdate.quickdate import DateLocate
>>> DateLocate.parse('20230821').format("%Y-%m-%d")
2023-08-21

其中, parse 函数还支持以下日期时间格式(不限于)

>>> DateLocate.parse('22nd,July,2009').format("%Y-%m-%d")
2009-07-22
>>> DateLocate.parse('2018-04-20').format("%Y-%m-%d")
2018-04-20
>>> DateLocate.parse('2018').format("%Y-%m-%d")
2018-08-21
>>> DateLocate.parse('5,').format("%Y-%m-%d")
2023-08-05
>>> DateLocate.parse('9:10:8').format("%Y-%m-%d %H:%M:%S")
2023-08-21 09:10:08
>>> DateLocate.parse('02/11/2016').format("%Y-%m-%d %H:%M:%S")
2016-02-11 00:00:00

以下,将以今天为起点,说明 quickdate 库的用法

# 按日定位日期 
>>> DateLocate().format("%Y-%m-%d")
2023-08-21
>>> DateLocate().add(days=-1).format("%Y-%m-%d")
2023-08-20
# 按周定位日期 
>>> DateLocate().add(weeks=-1).format("%Y-%m-%d")
2023-08-14
# 按月定位日期 
>>> DateLocate().add(months=-1).format("%Y-%m-%d")
2023-07-21
# 特别地,若当天为本月最后一天,获取上月日期时,会较正为准确上月最后一天的日期 
>>> DateLocate.parse("2023-03-31").add(months=-1).format("%Y-%m-%d")
2023-02-28
# 按年定位日期 
>>> DateLocate().add(years=-1).format("%Y-%m-%d")
2022-08-21

定位日期的方式,除了以上传一个参数以外,还可以复合传多个参数(但同一个参数仅能传一次)

>>> DateLocate().add(weeks=-1, days=2, months=-2, years=-1).format("%Y-%m-%d")
2022-06-16

还可以进行链式定位

>>> DateLocate().add(days=-1).add(weeks=-3).lastDay().format("%Y-%m-%d")
2023-07-31

可根据需求,直接设定年月日时分秒的值

>>> DateLocate().year(2022).month(12).day(5).hour(10).format("%Y-%m-%d %H:%M:%S")
2022-12-05 10:41:47

通过 week 函数,可获取定位日期同周的周一至周日的日期

>>> DateLocate().week(5).format("%Y-%m-%d")
2023-08-25

通过 lastDay 函数,可获取定位日期当月最后一天的日期

>>> DateLocate().lastDay().format("%Y-%m-%d")
2023-08-31

使用案例

获取当天日期

>>> from quickdate.quickdate import DateLocate
>>> DateLocate().format("%Y-%m-%d")
2023-08-21

获到昨天日期

>>> DateLocate().add(days=-1).format("%Y-%m-%d")
2023-08-20

获取上周三的日期

>>> DateLocate().add(weeks=-1).week(3).format("%Y-%m-%d")
2023-08-16

获取去年今日对应月份的最后一天

>>> DateLocate().add(years=-1).lastDay().format("%Y-%m-%d")
2022-08-31

获取上个月的1号

>>> DateLocate().add(months=-1).day(1).format("%Y-%m-%d")
2023-07-01

获取上上周六的日期

>>> DateLocate().add(weeks=-2).week(6).format("%Y-%m-%d")
2023-08-12

About

快捷处理日期的Python库,支持从字符串解析日期,灵活实现加减日、周、月、年、时、分、秒的时间操作

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /