日付の取得と、その使用例【Python】
Pythonを使用していて、Pythonを実行した時点の日付を取得したいことがあります。たとえば、HTMLのメタ情報に日付を記述したい場合などです。この記事では、日付の取得と、その使用例について書きます。
• 日付を取得する
日付を取得して表示するコード例を以下に示します。
d = datetime.datetime.now()
print(d)
print(type(d))
実行結果は以下のとおりです。
2024-01-29 10:32:31.649531
<class 'datetime.datetime'>
このコードは以下の処理をおこなっています。
- dateimeモジュールをインポートする。
- datetime.now()メソッドを呼び出す。
- 変数dを表示する。
- 変数dの型を表示する。
print(type(d))
の結果から、変数dは文字列ではなく、オブジェクトであることがわかります。
そのため、変数dを文字列として扱おうとするとエラーになります。以下にエラーとなるコードの例を示します。
d = datetime.datetime.now()
s = d[0]
print(s)
実行結果は以下のとおりです。
TypeError: 'datetime.datetime' object is not subscriptable
なお、以下のコードは変数dが文字列であるため、エラーになりません。
#d = datetime.datetime.now()
d= 'abcdefg'
s = d[0]
print(s)
このコードは、"abcdefg"という文字列の一番左の文字を表示するものです。
実行結果は以下のとおりです。
a
• 取得した日付を文字列に変換する。
サンプルコード
datetime.now()メソッドで取得した日付を、文字列に変換するとします。ここで、変換後の文字列は「YYYY-MM-DD」形式とします。
[sample.py]d = datetime.datetime.now()
dStr = d.strftime('%Y-%m-%d')
print(dStr)
print(type(dStr))
実行結果は以下のとおりです。
2024-01-29
<class 'str'>
日付を文字列に変換することができました。
strftime()メソッド
• 取得した日付の使用例
目的
PythonでHTMLファイルを作成する際、作成した日付を、文書の発行日としてファイルに記録しておくとします。日付はHTMLのメタタグに記入します。例を以下に示します。
<meta name="date" content="2024-01-29">
サンプルコード
サンプルコードを以下に示します。
[sample2.py]d = datetime.datetime.now()
dStr = d.strftime('%Y-%m-%d')
metaDate = '<meta name="date" content="★★★">'
metaDate = metaDate.replace('★★★', dStr)
print(metaDate)
実行結果は以下のとおりです。
<meta name="date" content="2024-01-29">
Pythonを実行した日付を、HTMLのメタタグに記入できました。
#sample2.pyは、★★★という文字列をreplace()メソッドを使って日付に置換しています。
• まとめ
- datetimeモジュールを使うと、日付を取得できます。
- strftime()メソッドで、日付データを日付文字列に変換できます。
- その日付文字列を使って、HTMLのメタタグを作ることができます。