【Python】日時取得はArrowのインストールだけでOK

【Python】日時取得はArrowのインストールだけでOK プログラミング

「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.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年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の動作確認を説明しました。

タイトルとURLをコピーしました