为了顺应当前形势和更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 编程开发 查看内容

6款Python时间和日期库推荐

2017-10-28 01:54| 投稿: lofor |来自: 互联网

摘要: 在使用Python的开发过程中,除了使用datetime标准库来处理时间和日期,还有许多第三方的开源库值得尝试。1,箭Arrow是一个专门处理时间和日期的轻量级Python库,它提供了一种合理,智能的方式来创建,操作,格式化, ...

在使用Python的开发过程中,除了使用datetime标准库来处理时间和日期,还有许多第三方的开源库值得尝试。

1,箭

Arrow是一个专门处理时间和日期的轻量级Python库,它提供了一种合理,智能的方式来创建,操作,格式化,转换时间和日期,并提供了一个支持许多常见构建方案的智能模块API。简单来说,它可以帮你以更简便的操作和更少的代码来使用日期和时间。其设计灵感主要来源于moment.js和  请求

快速开始

$ pip 安装箭头
>>> import arrow
 >>> utc = arrow.utcnow()
 >>> utc
<箭头[ 2013 - 05 - 11 T21:23 58.970460 + 00 00 ]>

>>> utc = utc.replace(hours =  - 1>>> utc
<箭头[ 2013 - 05 - 11 T20:23 58.970460 + 00 00 ]>

>>> local = utc.to('US / Pacific'>>> local
<箭头[ 2013 - 05 - 11 T13:23 58.970460 - 07 00 ]>

>>> arrow.get('2013-05-11T21:23:58.970460 + 00:00'
<箭头[ 2013 - 05 - 11 T21:23 58.970460 + 00 00 ]>

>>> local.timestamp
 1368303838

>>> local.format()
 '2013-05-11 13:23:58 -07:00'

>>> local.format('YYYY-MM-DD HH:mm:ss ZZ''2013-05-11 13:23:58 -07:00'

>>> local.humanize()
 '一小时前'

>>> local.humanize(locale = 'ko_kr''1시간전'

2,德罗宁

Delorean提供了一个相比于datetime和pytz的更好的抽象,让你处理时间更容易。它有很多有用的处理时区的特性,标准化时区或者从一个时区改变到另外一个时区。

快速开始

 datetime import datetime
 import pytz

est = pytz.timezone('US / Eastern'
d = datetime.now(pytz.utc)
d = est.normalize(d.astimezone(est))
返回 d
 delorean 进口 Delorean

d = Delorean()
d = d.shift('US / Eastern'return d

3,摆

原生的datetime足够应付基本情况,但当面对更复杂的用例时,通常会有的捉襟肘,不那么直观。Pendulum在标准库的基础之上,提供了一个更简洁,更易于使用的API在让Python datetime更好用。

快速开始

>>进口摆锤

>>> now_in_paris = pendulum.now('Europe / Paris'>>> now_in_paris'2016-07-04T00
 :49:58.502116 + 02:00'

#无缝时区切换
>>> now_in_paris.in_timezone('UTC''2016-07-03T22:49:58.502116 + 00:00'

>>> tomorrow = pendulum.now()。add(days = 1>>> last_week = pendulum.now()。subtract(weeks = 1

>>>如果pendulum.now()。is_weekend():
打印('Party!''Party!'

>> >过去= pendulum.now()。减(分钟= 2>> > past.diff_for_humans()
 >> > '2分钟前'

>>> delta = past  -  last_week
 >>> delta.hours
 23 
>>> delta.in_words(locale = 'en''6天23小时58分钟

#日期时间正常化的适当处理
>> > pendulum.create(201333123000'欧洲/巴黎''2013-03-31T03:30:00 + 02:00'  #2 :30不存在(跳过时间)

#正确处理DST转换的
>> > just_before = pendulum.create(201333115959999999'欧洲/巴黎''2013-03-31T01:59:59.999999 + 01:00' 
>>> just_before.add(microseconds = 1'2013-03-31T03:00:00 + 02:00'

4,dateutil

dateutil是datetime标准库的一个扩​​展库,几乎支持以所有字符串格式对日期进行通用解析,日期计算灵活,内部数据更新及时。

快速开始

>>>  dateutil.relativedelta 进口 *
 >>>  dateutil.easter 进口 *
 >>>  dateutil.rrule 进口 *
 >>>  dateutil.parser 进口 *
 >>> 日期时间进口 *
 >>>现在=解析(“Sat Oct 11 17:13:46 UTC 2003”>>> today = now.date()
 >>> year = rrule(YEARLY,dtstart = now,bymonth = 8,bymonthday = 13,byweekday = FR)[ 0 ]。
年>>>rdelta = relativedelta(复活节(年)今天)
 >>> print(“今天是:%s”今天)
今天2003 -10 -11 
>>> print(“今年8月13日星期五为:%s”%年)
年份下一个8月13日星期五2004 
>>> print(“那年的复活节有多远?%s”%rdelta)
多远那年的复活节:relativedelta(月= + 6>>>印刷(“这一年的复活节:%的”%(今天+ rdelta))
那年的复活节2004 -04 -11

5,时刻

用于处理日期/时间的Python库,设计灵感同样是来源于moment.js和  请求,设计理念源自  Times Python模块。

用法

进口时刻
从datetime import datetime

#从字符串 
moment.date 创建一个时刻“12-18-2012”

#创建一个具有指定strftime格式的时刻 
moment.date(“12-18-2012”“%m-%d-%Y”

#Moment在幕后使用了令人敬畏的dateparser库 
moment.date(“2012-12-18”

#创建一个时刻,里面加上一些单词 
moment.date(“2012年12月18日”

创建一个通常很难做的 
时刻moment.date(“2周前”

#创建一个未来的时刻,否则会是真的很难 
tim.date(“从现在开始2周”

#从当前日期时间创建一个时刻
moment.now()

#这一刻也可以是基于UTC的
moment.utcnow()

#创建一个UTC时区的时刻 
moment.utc(“2012-12-18”

#从Unix时间戳创建一刻 
moment.unix(1355875153626

#从Unix UTC时间戳创建一刻 
moment.unix(1355875153626,utc = True)

#返回日期时间实例 
moment.date(20121218).date

#我们可以做同样的事情与UTC方法 
moment.utc(20121218).date

#使用Moment.js语义创建并格式化一刻 
moment.now()。format(“YYYY-MD”

#创建和由strftime语义格式化力矩 
moment.date(20121218).strftime( “%Y-%间- %D” 

#更新您的片刻的时区 
moment.date(日期时间(20121218))。区域(“美/中环”).date

#将时刻的UTC时区更改为不同的时区 
moment.utcnow()。timezone(“US / Eastern”).date

#设置和更新你的时刻的时区。例如,我在
#西海岸,但希望NYC目前的时间。
moment.now()。locale(“US / Pacific”).timezone(“US / Eastern”

#为了操纵时区,必须始终设置一个区域设置,或
#必须使用UTC。
moment.utcnow()。时区(“US / Eastern”).date

#你也可以克隆一下,所以原来保持不变 
现在= moment.utcnow()。timezone(“US / Pacific”
future = now.clone()。add(weeks = 2

6,When.py

提供对用户非常友好的特性来帮助执行常见的日期和时间操作。

用法

转自https://my.oschina.net/editorial-story/blog/1556818


小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部