在使用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 d3,摆原生的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(2013,3,31,2,30,0,0,'欧洲/巴黎')
'2013-03-31T03:30:00 + 02:00' #2 :30不存在(跳过时间)
#正确处理DST转换的
>> > just_before = pendulum.create(2013,3,31,1,59,59,999999,'欧洲/巴黎')
'2013-03-31T01:59:59.999999 + 01:00'
>>> just_before.add(microseconds = 1)
'2013-03-31T03:00:00 + 02:00'4,dateutildateutil是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 -115,时刻用于处理日期/时间的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(2012,12,18).date
#我们可以做同样的事情与UTC方法
moment.utc(2012,12,18).date
#使用Moment.js语义创建并格式化一刻
moment.now()。format(“YYYY-MD”)
#创建和由strftime语义格式化力矩
moment.date(2012,12,18).strftime( “%Y-%间- %D” )
#更新您的片刻的时区
moment.date(日期时间(2012,12,18))。区域(“美/中环”).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提供对用户非常友好的特性来帮助执行常见的日期和时间操作。 用法
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|