更好的时间与日期操作Python库:Arrow

jopen 11年前

Arrow是一个Python库,提供了一种易于理解,智能的方式来创建,操作,格式化和转换日期与时间。Arrow具有简单,轻量级的特点。参考 moment.jsrequests实现。

为什么要设计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