What and Why?
Arrow是一个用于时间处理的python库。它能够一键转化dates、times、timestamps等多种时间格式,而不需要大量import各种时间模块和格式转化函数。十分便捷和人性化,能够极大程度简化你的代码。
详细参数请查询官方说明
How?
原生时间操作需要对time\datetime\date等多种格式进行转化再操作。
使用Arrow仅需两步,第一步接受各种类型时间类型(datetime,date,timestamps)转化为Arrow类型,第二步转化成自己需要的格式或进行操作。
import arrow
#获取当前时间的Arrow格式,2018年1月19日
i=arrow.now()
i
#转化时间戳
i.timestamp
1516284969
#年月日
i.format('YYYY-MM-DD HH:mm:ss')
'2018-01-19 18:56:32'
#星期
i.format('MMM DD dddd ')
'Jan 19 Friday '
#时间戳转化为日期
timeStamp = 1516284232.9397206
i = arrow.get(timeStamp)
i.format('YYYY-MM-DD HH:mm:ss')
#字符串转时间戳
a = "2013-10-10 23:40:00"
i = arrow.get(a)
i.timestamp
#66天后日期
i.shift(days=66).format('YYYY-MM-DD HH:mm:ss')
'2018-03-26 18:56:32'
#修改日期,梦回2008
i.replace(year=2008,month=8,days=8).format('YYYY-MM-DD HH:mm:ss')
'2008-08-08 18:56:32'
Method
根据数据创建时间arrow.Arrow(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
arrow.Arrow(2013, 5, 5, 12, 30, 45)
fromtimestamp(timestamp, tzinfo=None)从时间戳转换
fromdatetime(dt, tzinfo=None)#从datetime格式转化
strptime(date_str, fmt, tzinfo=None) 从strptime转换
get(*args, **kwargs)#接受各种时间并转换为arrow格式
arrow.get('2013-09-29T01:26:43.830580')
arrow.get(datetime(2013, 5, 5))
arrow.get(date(2013, 5, 5))
arrow.get(2013, 5, 5, 12, 30, 45)
range(frame, start, end=None, tz=None, limit=None) 创建时间范围
start = datetime(2013, 5, 5, 12, 30)
>>> end = datetime(2013, 5, 5, 17, 15)
>>> for r in arrow.Arrow.range('hour', start, end):
... print(repr(r))
...
修改时间replace(**kwargs) 替换某个时间区域
arw = arrow.utcnow()
>>> arw
>>> arw.replace(year=2014, month=6)
shift(**kwargs) 移动时间
arw = arrow.utcnow()
>>> arw
>>> arw.shift(years=1, months=-1)
格式化参数
YearYYYY2000, 2001, 2002 ... 2012, 2013
YY00, 01, 02 ... 12, 13
MonthMMMMJanuary, February, March ... [1]
MMMJan, Feb, Mar ... [1]
MM01, 02, 03 ... 11, 12
M1, 2, 3 ... 11, 12
Day of YearDDDD001, 002, 003 ... 364, 365
DDD1, 2, 3 ... 4, 5
Day of MonthDD01, 02, 03 ... 30, 31
D1, 2, 3 ... 30, 31
Do1st, 2nd, 3rd ... 30th, 31st
Day of WeekddddMonday, Tuesday, Wednesday ... [2]
dddMon, Tue, Wed ... [2]
d1, 2, 3 ... 6, 7
HourHH00, 01, 02 ... 23, 24
H0, 1, 2 ... 23, 24
hh01, 02, 03 ... 11, 12
h1, 2, 3 ... 11, 12
AM / PMAAM, PM, am, pm [1]
aam, pm [1]
Minutemm00, 01, 02 ... 58, 59
m0, 1, 2 ... 58, 59
Secondss00, 01, 02 ... 58, 59
s0, 1, 2 ... 58, 59
Sub-secondS...0, 02, 003, 000006, 123123123123... [3]
TimezoneZZZAsia/Baku, Europe/Warsaw, GMT ... [4]
ZZ-07:00, -06:00 ... +06:00, +07:00
Z-0700, -0600 ... +0600, +0700
TimestampX1381685817
更多关于python数据分析与挖掘内容请关注我的专栏:数与码
或者关注我的知乎账号:知行
欢迎交流讨论和点赞~