NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #378 most downloaded on PyPI
Better dates & times for Python
Last release 11 months ago
18 Oct 2025
Ships unpredictably
gaps range from 9 days to 2.0 years
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
65 releases · first in 2012
Addressed datetime.utcnow deprecation warning. PR #1182
week_start parameter to floor() and ceil() methods. PR #1222FORMAT_RFC3339_STRICT with a T separator. PR #1201Arrow.__getattr__. PR #1171shift() method for issue #1145. PR #1194datetime.utcnow deprecation warning. PR #1182arrow.format. PR #1180One column per quarter.
[ADDED] Added week_start parameter to floor() and ceil() methods. PR #1222
[ADDED] Added FORMAT_RFC3339_STRICT with a T separator. PR #1201
[ADDED] Added Macedonian in Latin locale support. PR #1200
[ADDED] Added Persian/Farsi locale support. PR #1190
[ADDED] Added week and weeks to Thai locale timeframes. PR #1218
[ADDED] Added weeks to Catalan locale. PR #1189
[ADDED] Added Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. PR #1172
[CHANGED] Migrated Arrow to use ZoneInfo for timezones instead of pytz. PR #1217
[FIXED] Fixed humanize month limits. PR #1224
[FIXED] Fixed type hint of Arrow.__getattr__. PR #1171
[FIXED] Fixed spelling and removed poorly used expressions in Korean locale. PR #1181
[FIXED] Updated shift() method for issue #1145. PR #1194
[FIXED] Improved Greek locale translations (seconds, days, "ago", and month typo). PR #1184, PR #1186
[FIXED] Addressed datetime.utcnow deprecation warning. PR #1182
[INTERNAL] Added codecov test results. PR #1223
[INTERNAL] Updated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).
[INTERNAL] Added docstrings to parser.py. PR #1010
[INTERNAL] Updated Python versions support and bumped CI dependencies. PR #1177
[INTERNAL] Added dependabot for GitHub actions. PR #1193
[INTERNAL] Moved dateutil types to test requirements. PR #1183
[INTERNAL] Added documentation link for arrow.format. PR #1180
[ADDED] Added official support for Python 3.11 and 3.12.
types-python-dateutil to improve Arrow mypy compatibility. PR https://github.com/arrow-py/arrow/pull/1102setup.py/Twine to pyproject.toml/Flit for packaging and distribution..readthedocs.yaml configuration file for continued ReadTheDocs support.[NEW] Added Amharic, Armenian, Georgian, Laotian and Uzbek locales.
[FIX] The Belarusian, Bulgarian, Czech, Macedonian, Polish, Russian, Slovak and Ukrainian locales now support dehumanize.
xelatex for pdf generation in documentation.requirements.txt, requirements-docs.txt and requirements-tests.txt.flake8-annotations package for type linting in pre-commit.[NEW] Added quarter granularity to humanize, for example:
>>> import arrow
>>> now = arrow.now()
>>> four_month_shift = now.shift(months=4)
>>> now.humanize(four_month_shift, granularity="quarter")
'a quarter ago'
>>> four_month_shift.humanize(now, granularity="quarter")
'in a quarter'
>>> thirteen_month_shift = now.shift(months=13)
>>> thirteen_month_shift.humanize(now, granularity="quarter")
'in 4 quarters'
>>> now.humanize(thirteen_month_shift, granularity="quarter")
'4 quarters ago'
humanize now raises a ValueError.Full Diff: https://github.com/arrow-py/arrow/compare/1.2.0...1.2.1
>>> import arrow
>>> now = arrow.now()
>>> four_month_shift = now.shift(months=4)
>>> now.humanize(four_month_shift, granularity="quarter")
'a quarter ago'
>>> four_month_shift.humanize(now, granularity="quarter")
'in a quarter'
>>> thirteen_month_shift = now.shift(months=13)
>>> thirteen_month_shift.humanize(now, granularity="quarter")
'in 4 quarters'
>>> now.humanize(thirteen_month_shift, granularity="quarter")
'4 quarters ago'humanize now raises a ValueError.Full Diff: 1.2.0...1.2.1
[NEW] Added Albanian, Tamil and Zulu locales.
Decimal as input to arrow.get().dehumanize.A and hh.[NEW] Added Odia, Maltese, Serbian, Sami, and Luxembourgish locales.
arrow.get() should now properly pass the tzinfo argument to the Arrow constructor. See PR #968 for more info._format_timeframe().requirements.txt to requirements-dev.txt to prevent confusion with the dependencies in setup.py.[NEW] Implemented the dehumanize method for Arrow objects. This takes human readable input and uses it to perform relative time shifts, for example:
dehumanize method for Arrow objects. This takes human readable input and uses it to perform relative time shifts, for example: >>> arw
<Arrow [2021-04-26T21:06:14.256803+00:00]>
>>> arw.dehumanize("8 hours ago")
<Arrow [2021-04-26T13:06:14.256803+00:00]>
>>> arw.dehumanize("in 4 days")
<Arrow [2021-04-30T21:06:14.256803+00:00]>
>>> arw.dehumanize("in an hour 34 minutes 10 seconds")
<Arrow [2021-04-26T22:40:24.256803+00:00]>
>>> arw.dehumanize("hace 2 años", locale="es")
<Arrow [2019-04-26T21:06:14.256803+00:00]>
span("week"), for example: >>> arw
<Arrow [2021-04-26T21:06:14.256803+00:00]>
>>> arw.isoweekday()
1 # Monday
>>> arw.span("week")
(<Arrow [2021-04-26T00:00:00+00:00]>, <Arrow [2021-05-02T23:59:59.999999+00:00]>)
>>> arw.span("week", week_start=4)
(<Arrow [2021-04-22T00:00:00+00:00]>, <Arrow [2021-04-28T23:59:59.999999+00:00]>)
"en-gb") rather than an underscore ("en_gb") however this change is backward compatible._init_subclass. This now allows subclassing of locales, for example: >>> from arrow.locales import EnglishLocale
>>> class Klingon(EnglishLocale):
... names = ["tlh"]
...
>>> from arrow import locales
>>> locales.get_locale("tlh")
<__main__.Klingon object at 0x7f7cd1effd30>
arrow.get(2021, 3, 9) construction.dehumanize method for Arrow objects. This takes human readable input and uses it to perform relative time shifts, for example: >>> arw
<Arrow [2021-04-26T21:06:14.256803+00:00]>
>>> arw.dehumanize("8 hours ago")
<Arrow [2021-04-26T13:06:14.256803+00:00]>
>>> arw.dehumanize("in 4 days")
<Arrow [2021-04-30T21:06:14.256803+00:00]>
>>> arw.dehumanize("in an hour 34 minutes 10 seconds")
<Arrow [2021-04-26T22:40:24.256803+00:00]>
>>> arw.dehumanize("hace 2 años", locale="es")
<Arrow [2019-04-26T21:06:14.256803+00:00]>span("week"), for example: >>> arw
<Arrow [2021-04-26T21:06:14.256803+00:00]>
>>> arw.isoweekday()
1 # Monday
>>> arw.span("week")
(<Arrow [2021-04-26T00:00:00+00:00]>, <Arrow [2021-05-02T23:59:59.999999+00:00]>)
>>> arw.span("week", week_start=4)
(<Arrow [2021-04-22T00:00:00+00:00]>, <Arrow [2021-04-28T23:59:59.999999+00:00]>)"en-gb") rather than an underscore ("en_gb") however this change is backward compatible._init_subclass. This now allows subclassing of locales, for example: >>> from arrow.locales import EnglishLocale
>>> class Klingon(EnglishLocale):
... names = ["tlh"]
...
>>> from arrow import locales
>>> locales.get_locale("tlh")
<__main__.Klingon object at 0x7f7cd1effd30>arrow.get(2021, 3, 9) construction.[FIX] Updated internals to avoid issues when running mypy --strict.
mypy --strict.humanize month tests are fixed.[FIXED] Fixed an OverflowError that could occur when running Arrow on a 32-bit OS.
OverflowError that could occur when running Arrow on a 32-bit OS.[FIXED] A py.typed file is now bundled with the Arrow package to conform to PEP 561.
py.typed file is now bundled with the Arrow package to conform to PEP 561.[CHANGE] There are multiple breaking changes with this release, please see #832 for a complete overview.
After 8 years we're pleased to announce Arrow v1.0. Thanks to the entire Python community for helping make Arrow the amazing package it is today!
humanize granularity="auto" limits more accurate to reduce strange results.span, span_range and interval methods. This makes timespans begin at the start time given and not extend beyond the end time given, for example:>>> start = Arrow(2021, 2, 5, 12, 30)
>>> end = Arrow(2021, 2, 5, 17, 15)
>>> for r in arrow.Arrow.span_range('hour', start, end, exact=True):
... print(r)
...
(<Arrow [2021-02-05T12:30:00+00:00]>, <Arrow [2021-02-05T13:29:59.999999+00:00]>)
(<Arrow [2021-02-05T13:30:00+00:00]>, <Arrow [2021-02-05T14:29:59.999999+00:00]>)
(<Arrow [2021-02-05T14:30:00+00:00]>, <Arrow [2021-02-05T15:29:59.999999+00:00]>)
(<Arrow [2021-02-05T15:30:00+00:00]>, <Arrow [2021-02-05T16:29:59.999999+00:00]>)
(<Arrow [2021-02-05T16:30:00+00:00]>, <Arrow [2021-02-05T17:14:59.999999+00:00]>)
[CHANGE] Calls to the timestamp property now emit a DeprecationWarning. In a future release, timestamp will be changed to a method to align with Pytho…
>>> just_before = arrow.get(2013, 3, 31, 1, 55, tzinfo="Europe/Paris")
>>> just_before.shift(minutes=+10)
<Arrow [2013-03-31T03:05:00+02:00]>
>>> before = arrow.get("2018-03-10 23:00:00", "YYYY-MM-DD HH:mm:ss", tzinfo="US/Pacific")
>>> after = arrow.get("2018-03-11 04:00:00", "YYYY-MM-DD HH:mm:ss", tzinfo="US/Pacific")
>>> result=[(t, t.to("utc")) for t in arrow.Arrow.range("hour", before, after)]
>>> for r in result:
... print(r)
...
(<Arrow [2018-03-10T23:00:00-08:00]>, <Arrow [2018-03-11T07:00:00+00:00]>)
(<Arrow [2018-03-11T00:00:00-08:00]>, <Arrow [2018-03-11T08:00:00+00:00]>)
(<Arrow [2018-03-11T01:00:00-08:00]>, <Arrow [2018-03-11T09:00:00+00:00]>)
(<Arrow [2018-03-11T03:00:00-07:00]>, <Arrow [2018-03-11T10:00:00+00:00]>)
(<Arrow [2018-03-11T04:00:00-07:00]>, <Arrow [2018-03-11T11:00:00+00:00]>)
humanize week granularity translation for Tagalog.timestamp property now emit a DeprecationWarning. In a future release, timestamp will be changed to a method to align with Python's datetime module. If you would like to continue using the property, please change your code to use the int_timestamp or float_timestamp properties instead.Arrow.range() to incorrectly cut off ranges in certain scenarios when using month, quarter, or year endings.[WARN] Arrow will drop support for Python 2.7 and 3.5 in the 1.0.0 release in late September. The 0.16.x and 0.17.x releases are the last to support P
fold attribute for Arrow objects. For example: >>> before = Arrow(2017, 10, 29, 2, 0, tzinfo='Europe/Stockholm')
<Arrow [2017-10-29T02:00:00+02:00]>
>>> before.fold
0
>>> before.ambiguous
True
>>> after = Arrow(2017, 10, 29, 2, 0, tzinfo='Europe/Stockholm', fold=1)
<Arrow [2017-10-29T02:00:00+01:00]>
>>> after = before.replace(fold=1)
<Arrow [2017-10-29T02:00:00+01:00]>
normalize_whitespace flag to arrow.get. This is useful for parsing log files and/or any files that may contain inconsistent spacing. For example: >>> arrow.get("Jun 1 2005 1:33PM", "MMM D YYYY H:mmA", normalize_whitespace=True)
<Arrow [2005-06-01T13:33:00+00:00]>
>>> arrow.get("2013-036 \t 04:05:06Z", normalize_whitespace=True)
<Arrow [2013-02-05T04:05:06+00:00]>
[INTERNAL] Started issuing deprecation warnings for Python 2.7 and 3.5.
humanize week granularity translation for Czech.arrow.get will now pick sane defaults when weekdays are passed with particular token combinations, see #446[WARN] Arrow will drop support for Python 2.7 and 3.5 in the upcoming 1.0.0 release. The 0.15.x, 0.16.x, and 0.17.x releases are the last to support Python 2.7 and 3.5.
[NEW] Added humanize week granularity translation for Czech.
[FIX] arrow.get will now pick sane defaults when weekdays are passed with particular token combinations, see #446.
[INTERNAL] Moved arrow to an organization. The repo can now be found here.
[INTERNAL] Started issuing deprecation warnings for Python 2.7 and 3.5.
[INTERNAL] Added Python 3.9 to CI pipeline.
[NEW] Added a number of built-in format strings. See the docs for a complete list of supported formats. For example:
>>> arw = arrow.utcnow()
>>> arw.format(arrow.FORMAT_COOKIE)
'Wednesday, 27-May-2020 10:30:35 UTC'
Makefile, tox.ini, and requirements.txt files to the distribution bundle.humanize week granularity translation for Hebrew, Greek, Macedonian, Swedish, Slovak.arrow.get()
, arrow.fromtimestamp(), and arrow.utcfromtimestamp(). For example: >>> ts = 1591161115194556
>>> arw = arrow.get(ts)
<Arrow [2020-06-03T05:11:55.194556+00:00]>
>>> arw.timestamp
1591161115
[NEW] Added support for parsing and formatting ISO 8601 week dates via a new token W, for example:
W, for example:>>> arrow.get("2013-W29-6", "W")
<Arrow [2013-07-20T00:00:00+00:00]>
>>> utc=arrow.utcnow()
>>> utc
<Arrow [2020-01-23T18:37:55.417624+00:00]>
>>> utc.format("W")
'2020-W04-4'
x token (microseconds) is now possible, for example:>>> dt = arrow.utcnow()
>>> dt.format("x")
'1585669870688329'
>>> dt.format("X")
'1585669870'
humanize week granularity translation for German, Italian, Polish & Taiwanese locales.[WARN] Python 2 reached EOL on 2020-01-01. arrow will drop support for Python 2 in a future release to be decided (see #739).
span_range, interval and span methods. This allows you to include or exclude the start and end values.arrow.get() can now create arrow objects from a timestamp with a timezone, for example:>>> arrow.get(1367900664, tzinfo=tz.gettz('US/Pacific'))
<Arrow [2013-05-06T21:24:24-07:00]>
humanize can now combine multiple levels of granularity, for example:>>> later140 = arrow.utcnow().shift(seconds=+8400)
>>> later140.humanize(granularity="minute")
'in 139 minutes'
>>> later140.humanize(granularity=["hour", "minute"])
'in 2 hours and 19 minutes'
zh_hk).humanize week granularity translation for Dutch.humanize.range now supports both the singular and plural forms of the frames argument (e.g. day and days).humanize when singular seconds are involved.[FIX] Fixed an issue that caused package installs to fail on Conda Forge.
[NEW] factory.get() can now create arrow objects from a ISO calendar tuple, for example:
factory.get() can now create arrow objects from a ISO calendar tuple, for example: >>> arrow.get((2013, 18, 7))
<Arrow [2013-05-05T00:00:00+00:00]>
x to allow parsing of integer timestamps with milliseconds and microseconds. >>> arw = arrow.now()
>>> fmt = "YYYY-MM-DD h [h] m"
>>> arw.format(fmt)
'2019-11-02 3 h 32'
humanize week granularity translations for Chinese, Spanish and Vietnamese.ParserError to module exports.[NEW] Added humanize week granularity translations for Portuguese and Brazilian Portuguese.
humanize week granularity translations for Portuguese and Brazilian Portuguese.[FIX] Fixed a bug that caused Arrow to fail when passed a negative timestamp string.
tzinfo of type StaticTzInfo.[NEW] Added humanize week granularity translations for Japanese.
[FIX] Fixed a bug that caused Arrow to fail when passed a negative timestamp string.
[FIX] Fixed a bug that caused Arrow to fail when passed a datetime object with tzinfo of type StaticTzInfo.
[NEW] Added support for DDD and DDDD ordinal date tokens. The following functionality is now possible: arrow.get("1998-045"), arrow.get("1998-45", "YY
arrow.get("1998-045"), arrow.get("1998-45", "YYYY-DDD"), arrow.get("1998-045", "YYYY-DDDD").YYYYMMDDTHHmmssZ).humanize week granularity translations for French, Russian and Swiss German locales.str are no longer supported without a format string in the arrow.get() method. This change was made to support the ISO 8601 basic format and to address bugs such as #447.# will NOT work in v0.15.0
arrow.get("1565358758")
arrow.get("1565358758.123413")
# will work in v0.15.0
arrow.get("1565358758", "X")
arrow.get("1565358758.123413", "X")
arrow.get(1565358758)
arrow.get(1565358758.123413)
ParserError is raised.X) will now match float timestamps of type str: arrow.get(“1565358758.123415”, “X”).X) will now only match on strings that strictly contain integers and floats, preventing incorrect matches.arrow.get() returning an incorrect Arrow object from a partial parsing match have been eliminated. The following issue have been addressed: #91, #196, #396, #434, #447, #456, #519, #538, #560.[CHANGE] ArrowParseWarning will no longer be printed on every call to arrow.get() with a datetime string. The purpose of the warning was to start a co
ArrowParseWarning will no longer be printed on every call to arrow.get() with a datetime string. The purpose of the warning was to start a conversation about the upcoming 0.15.0 changes and we appreciate all the feedback that the community has given us![NEW] Added support for week granularity in Arrow.humanize(). For example, arrow.utcnow().shift(weeks=-1).humanize(granularity="week") outputs "a week
week granularity in Arrow.humanize(). For example, arrow.utcnow().shift(weeks=-1).humanize(granularity="week") outputs "a week ago". This change introduced two new untranslated words, week and weeks, to all locale dictionaries, so locale contributions are welcome!arrow.get() to ignore tzinfo arguments of type string (e.g. arrow.get(tzinfo="Europe/Paris")).arrow.Arrow() was instantiated with a pytz tzinfo object.arrow.get("2015-01-12T01:13:15.9999995")). Arrow should now accurately propagate the rounding for large sub-second tokens.Removed deprecated replace shift functionality.
[NEW] Added Afrikaans locale.
[CHANGE] Removed deprecated replace shift functionality. Users looking to pass plural properties to the replace function to shift values should use shift instead.
[FIX] Fixed bug that occurred when factory.get() was passed a locale kwarg.
Fixed a regression in 0.14.3 that prevented a tzinfo argument of type string to be passed to the get() function. Functionality such as arrow.get("2019
get() function. Functionality such as arrow.get("2019072807", "YYYYMMDDHH", tzinfo="UTC") should work as normal again.Added full support for Python 3.8.
[NEW] Added full support for Python 3.8.
[CHANGE] Added warnings for upcoming factory.get() parsing changes in 0.15.0. Please see #612 for full details.
[FIX] Extensive refactor and update of documentation.
[FIX] factory.get() can now construct from kwargs.
[FIX] Added meridians to Spanish Locale.
Make Travis CI builds use tox to lint and run tests.
[CHANGE] Travis CI builds now use tox to lint and run tests.
[FIX] Fixed UnicodeDecodeError on certain locales (#600).
Fix "ImportError: No module named 'dateutil'" (#598).
Add provisional support for Python 3.8.
[NEW] Added provisional support for Python 3.8.
[CHANGE] Removed support for EOL Python 3.4.
[FIX] Updated setup.py with modern Python standards.
[FIX] Upgraded dependencies to latest versions.
[FIX] Enabled flake8 and black on travis builds.
[FIX] Formatted code using black and isort.
Improved humanize behaviour for near zero durations.
[NEW] Add is_between method.
[FIX] Improved humanize behaviour for near zero durations (#416).
[FIX] Correct humanize behaviour with future days (#541).
[FIX] Documentation updates.
[FIX] Improvements to German Locale.
Remove deprecation decorators for Arrow.range(), Arrow.span_range() and Arrow.interval(). All now return generators, wrap with list() to get old behav…
[NEW] Add support for Python 3.7.
[CHANGE] Remove deprecation decorators for Arrow.range(), Arrow.span_range() and Arrow.interval(), all now return generators, wrap with list() to get old behavior.
[FIX] Documentation and docstring updates.
Drop support for Python 2.6/3.3.
[NEW] Added support for Python 3.6.
[CHANGE] Drop support for Python 2.6/3.3.
[CHANGE] Return generator instead of list for Arrow.range(), Arrow.span_range() and Arrow.interval().
[FIX] Make arrow.get() work with str & tzinfo combo.
[FIX] Make sure special RegEx characters are escaped in format string.
[NEW] Added support for ZZZ when formatting.
[FIX] Stop using datetime.utcnow() in internals, use datetime.now(UTC) instead.
[FIX] Return NotImplemented instead of TypeError in arrow math internals.
[NEW] Added Estonian Locale.
[FIX] Small fixes to Greek locale.
[FIX] TagalogLocale improvements.
[FIX] Added test requirements to setup.
[FIX] Improve docs for get, now and utcnow methods.
[FIX] Correct typo in depreciation warning.
Allow universal wheels to be generated and reliably installed.
[FIX] Allow universal wheels to be generated and reliably installed.
[FIX] Make humanize respect only_distance when granularity argument is also given.
Fix python 2.x compatibility by adding functools-lru-cache to install_requires if version is less than 3.
Added Nepali & Indonesian Locales.
[FIX] Fix grammar of ArabicLocale
[NEW] Add Nepali Locale
[FIX] Fix month name + rename AustriaLocale -> AustrianLocale
[FIX] Fix typo in Basque Locale
[FIX] Fix grammar in PortugueseBrazilian locale
[FIX] Remove pip --user-mirrors flag
[NEW] Add Indonesian Locale
[FIX] Fix getattr off by one for quarter
[FIX] Fix getattr off by one for quarter
[FIX] Fix negative offset for UTC
[FIX] Update arrow.py
[NEW] Support gnu date iso 8601
[NEW] Remove duplicate code
[NEW] Support gnu date iso 8601
[NEW] Add support for universal wheels
[NEW] Slovenian locale
[NEW] Slovak locale
[NEW] Romanian locale
[FIX] respect limit even if end is defined range
[FIX] Separate replace & shift functions
[NEW] Added tox
[FIX] Fix supported Python versions in documentation
[NEW] Azerbaijani locale added, locale issue fixed in Turkish.
[FIX] Format ParserError's raise message
- []
[FIX] Parse localized strings #228 (swistakm)
[FIX] Parse localized strings #228 (swistakm)
[FIX] Modify tzinfo parameter in get api #221 (bottleimp)
[FIX] Fix Czech locale (PrehistoricTeam)
[FIX] Raise TypeError when adding/subtracting non-dates (itsmeolivia)
[FIX] Fix pytz conversion error (Kudo)
[FIX] Fix overzealous time truncation in span_range (kdeldycke)
[NEW] Humanize for time duration #232 (ybrs)
[NEW] Add Thai locale (sipp11)
[NEW] Adding Belarusian (be) locale (oire)
[NEW] Search date in strings (beenje)
[NEW] Note that arrow's tokens differ from strptime's. (offby1)
[FIX] Added support for Python 3
[FIX] Added support for Python 3
[FIX] Avoid truncating oversized epoch timestamps. Fixes #216.
[FIX] Fixed month abbreviations for Ukrainian
[FIX] Fix typo timezone
[FIX] A couple of dialect fixes and two new languages
[FIX] Spanish locale: Miercoles should have acute accent
[Fix] Fix Finnish grammar
[FIX] Fix typo in 'Arrow.floor' docstring
[FIX] Use read() utility to open README
[FIX] span_range for week frame
[NEW] Add minimal support for fractional seconds longer than six digits.
[NEW] Adding locale support for Marathi (mr)
[NEW] Add count argument to span method
[NEW] Improved docs
Nothing published for this version
[NEW] struct_time addition. (mhworth)
Nothing published for this version
[NEW] Include the docs in the released tarball
[NEW] Include the docs in the released tarball
[NEW] Czech localization Czech localization for Arrow
[NEW] Add fa_ir to locales
[FIX] Fixes parsing of time strings with a final Z
[FIX] Fixes ISO parsing and formatting for fractional seconds
[FIX] test_fromtimestamp sp
[FIX] some typos fixed
[FIX] removed an unused import statement
[FIX] docs table fix
[FIX] Issue with specify 'X' template and no template at all to arrow.get
[FIX] Fix "import" typo in docs/index.rst
[FIX] Fix unit tests for zero passed
[FIX] Update layout.html
[FIX] In Norwegian and new Norwegian months and weekdays should not be capitalized
[FIX] Fixed discrepancy between specifying 'X' to arrow.get and specifying no template
[NEW] Arabic locale (Mosab Ahmad)
[NEW] Turkish locale (Emre)
[NEW] Arabic locale (Mosab Ahmad)
[NEW] Danish locale (Holmars)
[NEW] Icelandic locale (Holmars)
[NEW] Hindi locale (Atmb4u)
[NEW] Malayalam locale (Atmb4u)
[NEW] Finnish locale (Stormpat)
[NEW] Portuguese locale (Danielcorreia)
[NEW] h and hh strings are now supported (Averyonghub)
[FIX] An incorrect inflection in the Polish locale has been fixed (Avalanchy)
[FIX] arrow.get now properly handles Date (Jaapz)
[FIX] Tests are now declared in setup.py and the manifest (Pypingou)
[FIX] __version__ has been added to __init__.py (Sametmax)
[FIX] ISO 8601 strings can be parsed without a separator (Ivandiguisto / Root)
[FIX] Documentation is now more clear regarding some inputs on arrow.get (Eriktaubeneck)
[FIX] Some documentation links have been fixed (Vrutsky)
[FIX] Error messages for parse errors are now more descriptive (Maciej Albin)
[FIX] The parser now correctly checks for separators in strings (Mschwager)
[NEW] Factory get method now accepts a single Arrow argument.
[NEW] Factory get method now accepts a single Arrow argument.
[NEW] Tokens SSSS, SSSSS and SSSSSS are supported in parsing.
[NEW] Arrow objects have a float_timestamp property.
[NEW] Vietnamese locale (Iu1nguoi)
[NEW] Factory get method now accepts a list of format strings (Dgilland)
[NEW] A MANIFEST.in file has been added (Pypingou)
[NEW] Tests can be run directly from setup.py (Pypingou)
[FIX] Arrow docs now list 'day of week' format tokens correctly (Rudolphfroger)
[FIX] Several issues with the Korean locale have been resolved (Yoloseem)
[FIX] humanize now correctly returns unicode (Shvechikov)
[FIX] Arrow objects now pickle / unpickle correctly (Yoloseem)
[NEW] Table / explanation of formatting & parsing tokens in docs
[NEW] Table / explanation of formatting & parsing tokens in docs
[NEW] Brazilian locale (Augusto2112)
[NEW] Dutch locale (OrangeTux)
[NEW] Italian locale (Pertux)
[NEW] Austrian locale (LeChewbacca)
[NEW] Tagalog locale (Marksteve)
[FIX] Corrected spelling and day numbers in German locale (LeChewbacca)
[FIX] Factory get method should now handle unicode strings correctly (Bwells)
[FIX] Midnight and noon should now parse and format correctly (Bwells)
[NEW] Format-free ISO 8601 parsing in factory get method
[NEW] Format-free ISO 8601 parsing in factory get method
[NEW] Support for 'week' / 'weeks' in span, range, span_range, floor and ceil
[NEW] Support for 'weeks' in replace
[NEW] Norwegian locale (Martinp)
[NEW] Japanese locale (CortYuming)
[FIX] Timezones no longer show the wrong sign when formatted (Bean)
[FIX] Microseconds are parsed correctly from strings (Bsidhom)
[FIX] Locale day-of-week is no longer off by one (Cynddl)
[FIX] Corrected plurals of Ukrainian and Russian nouns (Catchagain)
[CHANGE] Old 0.1 arrow module method removed
[CHANGE] Dropped timestamp support in range and span_range (never worked correctly)
[CHANGE] Dropped parsing of single string as tz string in factory get method (replaced by ISO 8601)
[NEW] Spanish locale (Slapresta)
[NEW] French locale (Cynddl)
[NEW] Spanish locale (Slapresta)
[FIX] Ranges handle multiple timezones correctly (Ftobia)
[FIX] Humanize no longer sometimes returns the wrong month delta
[FIX] Humanize no longer sometimes returns the wrong month delta
[FIX] __format__ works correctly with no format string
[NEW] Initial support for locale-based parsing and formatting
[NEW] Python 2.6 support
[NEW] Initial support for locale-based parsing and formatting
[NEW] ArrowFactory class, now proxied as the module API
[NEW] factory api method to obtain a factory for a custom type
[FIX] Python 3 support and tests completely ironed out
- [NEW] Python 3+ support
[NEW] Python 3+ support
[FIX] The old arrow module function handles timestamps correctly as it used to
[FIX] The old arrow module function handles timestamps correctly as it used to
[NEW] Accept timestamps, datetimes and Arrows for datetime inputs, where reasonable
[NEW] Arrow.replace method
[NEW] Accept timestamps, datetimes and Arrows for datetime inputs, where reasonable
[FIX] range and span_range respect end and limit parameters correctly
[CHANGE] Arrow objects are no longer mutable
[CHANGE] Plural attribute name semantics altered: single -> absolute, plural -> relative
[CHANGE] Plural names no longer supported as properties (e.g. arrow.utcnow().years)
[NEW] Support for localized humanization
[NEW] Support for localized humanization
[NEW] English, Russian, Greek, Korean, Chinese locales
[NEW] floor, ceil and span methods
REWRITE
[NEW] Date parsing
[NEW] Date formatting
[NEW] floor, ceil and span methods
[NEW] datetime interface implementation
[NEW] clone method
[NEW] get, now and utcnow API methods
[FIX] Issues with conversions related to daylight savings time resolved
[NEW] Humanized time deltas
[NEW] __eq__ implemented
[FIX] Issues with conversions related to daylight savings time resolved
[CHANGE] __str__ uses ISO formatting
[NEW] Parsing of ISO-formatted time zone offsets (e.g. '+02:30', '-05:00')
Started tracking changes
[NEW] Parsing of ISO-formatted time zone offsets (e.g. '+02:30', '-05:00')
[NEW] Resolved some issues with timestamps and delta / Olson time zones
Your coding agent can read these notes before it upgrades. Set up the MCP server →