Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでISO 8601形式の日付文字列を取得する方法【isoformat関数の使い方】

PythonでISO 8601形式の日付文字列を取得する

ISO 8601は、日付と時刻を国際的に標準化された形式で表現するための規格です(例:2024-01-31T15:30:00)。Python 3では、datetimeモジュールのisoformat()メソッドを使うことで、この形式の文字列を簡単に取得できます。

たとえば、2017年12月31日の日付オブジェクトに対してisoformat()を呼び出すと、'2017-12-31T00:00:00'という文字列が返されます。

コード例:isoformat()の基本的な使い方

from datetime import datetime

my_date = datetime.now()
print(my_date.isoformat())

実行結果

2018-01-02T22:08:12.510696

このように、現在の日時が自動的に「年-月-日T時:分:秒.マイクロ秒」の形式で出力されます。引数に'timespec''sep'などを指定すれば、マイクロ秒を省略したり、区切り文字を変更したりすることも可能です。

古いバージョンのPythonでの代替手段:strftime()を使う

より古いバージョンのPythonでは、strftime()メソッドを使ってdatetimeオブジェクトを任意の形式にフォーマットし、同様の結果を得ることができます。

コード例:strftime()によるフォーマット

from datetime import datetime

my_date = datetime.now()
print(my_date.strftime('%Y-%m-%dT%H:%M:%S.%f%z'))

実行結果

2018-01-02T22:10:05.284208

ここで使われている書式指定子の意味は次のとおりです。
%Y:4桁の西暦年
%m:月(01〜12)
%d:日(01〜31)
%H:時(24時間制)
%M:分
%S:秒
%f:マイクロ秒
%z:UTCからのタイムゾーンオフセット

まとめ

Python 3以降であれば、特別なライブラリを導入しなくてもisoformat()一つでISO 8601準拠の文字列を取得できます。タイムゾーン情報が必要な場合は、datetime.now(timezone.utc)のようにタイムゾーン付きの日時オブジェクトを作成してから変換するとよいでしょう。API通信やログ記録など、標準化された日時形式が求められる場面でぜひ活用してください。

  1. AndroidでISO 8601形式の日付文字列をDateオブジェクトに変換する方法

    この記事では、Androidアプリ開発において、ISO 8601形式の日付・時刻文字列をDateオブジェクトに変換する方法を、実際のサンプルコードとともにステップごとに解説します。 手順1:新規プロジェクトの作成 まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを生成してください。 手順2:レイアウトファイル(activity_main.xml)の編集 res/layout/activity_main.xmlに以下のコードを記述します。ここでは、画面中央に日付を表示するためのT

  2. Python 3のtkinterでファイルダイアログから文字列(ファイルパス)を取得する方法

    tkinterアプリケーションでファイルシステムを操作したい場合には、filedialogモジュールを利用します。このモジュールは、システム上のファイルを扱うための仕組みを提供しており、さまざまな種類のファイルダイアログを簡単に作成できる組み込み関数を多数備えています。用途に応じて任意のfiledialog関数を選択し、アプリケーションに組み込むことが可能です。中でも最もよく使われているのがfiledialog.askopenfilename()です。この関数を呼び出すと、ユーザーにファイルを開かせるためのダイアログが表示され、選択されたファイルのパスを文字列として受け取ることができます。サン