Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Better dates & times for Python
Python

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
arrow
docs
tests
.coveragerc
.gitignore
.travis.yml
HISTORY.rst
LICENSE
Makefile
README.rst
requirements.txt
requirements26.txt
requirements27.txt
requirements33.txt
setup.py

README.rst

Arrow - Better dates & times for Python

https://travis-ci.org/crsmithdev/arrow.png https://pypip.in/d/arrow/badge.png

Documentation: crsmithdev.com/arrow.

Arrow is a Python library that provides a sensible, intelligent way of creating, manipulating, formatting and converting dates and times. Arrow is simple, lightweight and heavily inspired by moment.js and requests.

Why?

Python's standard library and some other low-level modules offer complete functionality but don't work very well from a usability perspective:

  • Too many modules: datetime, time, calendar, dateutil, pytz
  • Time zones and timestamp conversions are verbose and error-prone
  • Time zones are explicit, naivete is the norm
  • Gaps in functionality: ISO-8601 parsing, timespans, humanization

Features

  • Implements the datetime interface
  • Supports Python 2.6, 2.7 and 3.3
  • TZ-aware & UTC by default
  • Concise, intelligent interface for creation
  • Easily replace and shift attributes
  • Rich parsing & formatting options
  • Timezone conversion
  • Simple timestamp handling
  • Time spans, ranges, floors and ceilings
  • Humanization, with support for a growing number of locales
  • Extensible factory architecture supporting custom Arrow-derived types

Get started

$ pip install 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시간 전'

Documentation

Documentation is available at crsmithdev.com/arrow.

Something went wrong with that request. Please try again.