摘要:最近刚接触项目组内的项目,发现所有的时间格式都是用的,同事美其名曰说是为了项目的国际化其实用户量最多几百人吧,还都集中在公司内部,哪来的国际化,哈哈哈哈。所以决定对该时间格式深入研究下,发现了中的模块。
最近刚接触项目组内的python项目,发现所有的时间格式都是用的iso8601,同事美其名曰说是为了项目的国际化(其实用户量最多几百人吧,还都集中在公司内部,哪来的国际化,哈哈哈哈!)。所以决定对该时间格式深入研究下,发现了python中的dateutil模块。
DATETIME转ISO8601格式,直接用isoformat()方法转即可
now_time = datetime.now().isoformat()
输出为
2018-12-04T08:44:35.792445
从字符串解析DATETIME格式(不用dateutil模块)
now_date_str = datetime.now().isoformat().split(".")[0] my_format = "%Y-%m-%dT%H:%M:%S" print(datetime.strptime(now_date_str, my_format))
这是python中最常用的将字符串转成时间格式的方法,输出结果为
2018-12-04 08:44:35
使用dateutil解析字符串
from dateutil.parser import parse timestamp = parse(now_date_str, fuzzy=True) print(timestamp)
输出结果同上,但这个parse方法中的fuzzy很神奇,可以模糊匹配时间格式,感兴趣的可以看下源码哈!
计算时间差
today = date.today() my_birthday = date(year=1992, month=3, day=17) print("我已经出生" + str((today - my_birthday).days) + "天")
可以直接计算我自己出生多少天了,输出为
我已经出生9758天
但是如果我要计算我多大了,也就是出生多少年,会出现什么情况呢?
Traceback (most recent call last): 2018-12-04 08:57:08 File "F:/pythonProject/testcode/testDate.py", line 27, inprint((today-my_birthday).years) 2018-12-04 08:57:08 AttributeError: "datetime.timedelta" object has no attribute "years"
很遗憾,报错了,因为timedelta中没有获取年份和月份的方法,所以我们继续使用dateutil模块
from dateutil.relativedelta import relativedelta diff = relativedelta(today, my_birthday)
通过输出可以发现,我们能获取到两个日期中间相差几年,几个月和几天
relativedelta(years=+26, months=+8, days=+17)
print(diff.years) print(diff.months) print(diff.days)
26 8 17
获取日期列表,如果需要获取连续五周周二的日期,通过dateutil可以很容易实现
from dateutil.rrule import rrule, WEEKLY pp(list(rrule(WEEKLY, count=10, dtstart=next_tuesday)))
输出为
[datetime.datetime(2018, 12, 4, 8, 59, 6), datetime.datetime(2018, 12, 11, 8, 59, 6), datetime.datetime(2018, 12, 18, 8, 59, 6), datetime.datetime(2018, 12, 25, 8, 59, 6), datetime.datetime(2019, 1, 1, 8, 59, 6), datetime.datetime(2019, 1, 8, 8, 59, 6), datetime.datetime(2019, 1, 15, 8, 59, 6), datetime.datetime(2019, 1, 22, 8, 59, 6), datetime.datetime(2019, 1, 29, 8, 59, 6), datetime.datetime(2019, 2, 5, 8, 59, 6)]
注意:dtstart必须是是时间格式
更多关于dateutil的例子可以从以下网站学习
https://dateutil.readthedocs....
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/42747.html
摘要:就好了下载,它是的。比较嗨,是文件把它移到你安装的包里的文件夹里主要看是不是有然后输入 系统:W10 专业版(64) 已安装:pthon2.7.11目的:安装Numpy, matplotlib 学习机器学习(Machine Learning) matplotib 用的不是官网最新版,使matplotlib-1.4.2.win32-py2.7 Numpy使用numpy-1.10.2-...
摘要:简评将于今年夏天发布,中将会有许多新东西,最激动人心的新功能之一是装饰器。因此,只需将代码更改为以下代码即可实现四种方法我们去掉了方法,以确保装饰器可以添加它生成的对应方法。 简评:Python 3.7 将于今年夏天发布,Python 3.7 中将会有许多新东西,最激动人心的新功能之一是 dataclass 装饰器。 什么是 Data Class 大多数 Python 开发人员编写过很...
阅读 1212·2021-09-26 09:55
阅读 3156·2019-08-30 15:55
阅读 947·2019-08-30 15:53
阅读 2284·2019-08-30 13:59
阅读 2367·2019-08-29 13:08
阅读 1097·2019-08-29 12:19
阅读 3289·2019-08-26 13:41
阅读 410·2019-08-26 13:24