更好的时间与日期操作Python库:Arrow
jopen
11年前
Arrow是一个Python库,提供了一种易于理解,智能的方式来创建,操作,格式化和转换日期与时间。Arrow具有简单,轻量级的特点。参考 moment.js 和 requests实现。
为什么要设计Arrow?
从可用性角度来看,Python的标准库和低端模块都提供了完整的功能,但却无法很好地工作,开发者使用起来也比较纠结。
- 模块太多:日期、时间、日历、datetuil、pytz。
- 时区和时间戳转换很麻烦,而且容易出错。
- 时区是显式的,且比较简单
- 功能差距:ISO-8601解析、时间跨度、不够人性化
核心功能:
- 实现datetime接口
- 支持Python 2.6、2.7和3.3
- 默认采用TZ-aware和UTC
- 创建简洁、智能的接口
- 可以轻松更换和改变属性
- 丰富的解析和格式化选项
- 时区转换
- 简单的时间戳操作
- 时间跨度
- 非常人性化,支持越来越多的语言环境
- 可扩展的工厂架构来支持自定义Arrow派生类型
使用示例:
>>> import arrow >>> utc = arrow.utcnow() >>> utc <Arrow [2013-05-11T21:23:58.970460+00:00]> >>> utc = utc.replace(hours=-1) >>> utc <Arrow [2013-05-11T20:23:58.970460+00:00]> >>> local = utc.to('US/Pacific') >>> local <Arrow [2013-05-11T13:23:58.970460-07:00]> >>> local.timestamp 1368303838 >>> local.format('YYYY-MM-DD HH:mm:ss ZZ') '2013-05-11 13:23:58 -07:00' >>> local.humanize() 'an hour ago' >>> local.humanize(locale='ko_kr') '1시간 전'
项目主页:http://www.open-open.com/lib/view/home/1370414219617