「Pythonでは日時の取得・表示が面倒・・・」
「Python dateutilは、直感的に使えない」
このような場合には、PythonのArrowライブラリが利用できます。
この記事では、Arrowについて解説しています。
本記事の内容
- Arrowとは?
- Arrowのシステム要件
- Arrowのインストール
- Arrowの動作確認
それでは、上記に沿って解説していきます。
Arrowとは?
Arrowは、日時関連のPythonライブラリです。
ただ、Pythonには組み込みモジュールが存在しています。
それらだけでも、日時を取得・表示することは可能です。
しかし、それらはどうも使いにくいという問題があります。
問題とは、以下のモノがあります。
- モジュールが多すぎる(datetime, time, calendar, dateutil, pytzなど)
- 型が多すぎる(date, time, datetime, tzinfo, timedelta, relativedeltaなど)
- タイムゾーンとタイムスタンプの変換は冗長で不愉快
- タイムゾーンの甘さは当たり前
これらの問題を解決するのが、Arrowになります。
確かに、Pythonで日時に関するコーディングはやりにくい印象があります。
日時に関しては、都度検索して調べているという状況です。
これって、かなり無駄なことですよね。
Arrowを利用すれば、そのような無駄を失くせます。
また、コードの可読性も上がるでしょう。
こんないいこと尽くめのライブラリなのに、日本ではイマイチの知名度です。
でも、世界的にはそれなりの知名度があります。
これは、2021年10月18日時点でのGitHubにおける評価です。
これを見る限り、Arrowは安心して利用できるライブラリと言えます。
以上、Arrowについて説明しました。
次は、Arrowのシステム要件を確認します。
Arrowのシステム要件
現時点(2021年10月)でのArrowの最新バージョンは、1.2.0となります。
この最新バージョンは、2021年10月2日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となります。
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
また、以下はPython公式開発サイクルです。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
現時点(2021年10月18日)では、まだPython 3.10には未対応のようです。
でも、ArrowはPython公式開発サイクルにほぼ準じています。
それだけメンテナンスが行き届いていると言えます。
まとめると、Arrowのシステム要件はPythonのバージョン次第です。
古いPythonでなければ、基本的には問題ないでしょう。
以上、Arrowのシステム要件の説明でした。
次は、Arrowをインストールします。
Arrowのインストール
検証は、次のPythonバージョンで行います。
>python -V Python 3.9.7
まずは、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.3 setuptools 58.2.0
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Arrowのインストールです。
Arrowのインストールは、以下のコマンドとなります。
pip install arrow
インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version --------------- ------- arrow 1.2.0 pip 21.3 python-dateutil 2.8.2 setuptools 58.2.0 six 1.16.0
依存関係のあるパッケージは、少ないです。
その意味では、比較的容易に既存環境へ導入できると言えます。
以上、Arrowのインストールについて説明しました。
最後は、Arrowの動作確認を行います。
Arrowの動作確認
Arrowの動作確認用のコードは、以下。
import arrow # 協定世界時 utc = arrow.utcnow() print(utc) # 協定世界時の1時間前 utc = utc.shift(hours=-1) print(utc) # 日本標準時(1時間前)に変換 local = utc.to('Asia/Tokyo') print(local) print(local.timestamp()) print(local.format()) print(local.format('YYYY-MM-DD HH:mm:ss ZZ')) print(local.humanize()) print(local.humanize(locale='ja-jp'))
上記を実行した結果は、以下。
2021-10-17T23:40:12.358311+00:00 2021-10-17T22:40:12.358311+00:00 2021-10-18T07:40:12.358311+09:00 1634510412.358311 2021-10-18 07:40:12+09:00 2021-10-18 07:40:12 +09:00 an hour ago 1時間前
確かに、人に優しいコードです。
また、UTCを基準にするという考え方は個人的にしっくりきます。
他の関数などについては、公式をご覧ください。
https://arrow.readthedocs.io/en/latest/
Arrowの動作確認としては、これで十分でしょう。
以上、Arrowの動作確認を説明しました。