Python中dateutil模块的理解(附示例)


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于Python中dateutil模块的理解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近刚接触项目组内的python项目,发现所有的时间格式都是用的iso8601,同事美其名曰说是为了项目的国际化(其实用户量最多几百人吧,还都集中在公司内部,哪来的国际化,哈哈哈哈!)。所以决定对该时间格式深入研究下,发现了python中的dateutil模块。

DATETIME转ISO8601格式,直接用isoformat()方法转即可

1

now_time = datetime.now().isoformat()

输出为

1

2018-12-04T08:44:35.792445

  • 从字符串解析DATETIME格式(不用dateutil模块)

1

2

3

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中最常用的将字符串转成时间格式的方法,输出结果为

1

2018-12-04 08:44:35

  • 使用dateutil解析字符串

1

2

3

from dateutil.parser import parse

timestamp = parse(now_date_str, fuzzy=True)

print(timestamp)

输出结果同上,但这个parse方法中的fuzzy很神奇,可以模糊匹配时间格式,感兴趣的可以看下源码哈!

  • 计算时间差

1

2

3

today = date.today()

my_birthday = date(year=1992, month=3, day=17)

print('我已经出生' + str((today - my_birthday).days) + '天')

可以直接计算我自己出生多少天了,输出为

1

我已经出生9758天

但是如果我要计算我多大了,也就是出生多少年,会出现什么情况呢?

1

2

3

4

5

6

Traceback (most recent call last):

2018-12-04 08:57:08

  File "F:/pythonProject/testcode/testDate.py", line 27, in <module>

    print((today-my_birthday).years)

2018-12-04 08:57:08

AttributeError: 'datetime.timedelta' object has no attribute 'years'

很遗憾,报错了,因为timedelta中没有获取年份和月份的方法,所以我们继续使用dateutil模块

阅读剩余部分

相关阅读 >>

Python函数中如何返回多个值?(代码示例)

Python解析socket数据流异常bytes的问题(详细)

深入了解Python之django框架

Python print 如何换行输出?

Python中二叉堆的详细介绍(代码示例)

如何理解Python中with语句

Python字典有set方法吗

配置Python连接oracle,读取excel数据写入数据库

Python教你高效办公,自制屏幕翻译工具

Python中关于字典dict的使用详解

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...