Pythonで日付文字列をタイムスタンプに変換する方法【mktime活用】
Pythonで日付を表す文字列をタイムスタンプ(UNIX時間)に変換したい場合、「time」パッケージに含まれるmktimeメソッドを使用するのが一般的です。この記事では、具体的なコード例と実行結果をもとに、その手順をわかりやすく解説します。
サンプルコード
import time
import datetime
my_string = "24/03/2021"
print("The date string is :")
print(my_string)
print("The timestamp is :")
print(time.mktime(datetime.datetime.strptime(my_string, "%d/%m/%Y").timetuple()))
実行結果
The date string is : 24/03/2021 The timestamp is : 1616544000.0
処理の流れと解説
まず、必要なパッケージである「time」と「datetime」をインポートします。
変換対象となる日付文字列を定義し、コンソールに表示します。
「strptime」メソッドを使い、日付文字列を指定したフォーマットで解析してdatetimeオブジェクトに変換します。この段階で、文字列内の余分な空白や不要な記号が取り除かれます。
datetimeオブジェクトの「timetuple」メソッドでstruct_time形式に変換し、それを「mktime」メソッドに渡すことで、タイムスタンプ(浮動小数点数)を取得します。
最終的な結果がコンソールに出力されます。
書式指定子のポイント
strptimeの第2引数には、入力文字列の形式に合わせた書式指定子を渡します。主な指定子は以下の通りです。
%d:日(01〜31)
%m:月(01〜12)
%Y:4桁の西暦年
上記の例では「24/03/2021」という「日/月/年」形式の文字列を「%d/%m/%Y」として解析しています。入力文字列の形式と書式指定子が一致していないとValueErrorが発生するため、実際のデータに応じて適切に指定することが重要です。
-
Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説
Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ
-
Unixエポックタイムスタンプとは?エポック時間を日付に変換する方法を徹底解説
コンピュータは、人間が使う自然言語(英語など)をそのまま理解できないことをご存知でしょうか?私たちが入力した命令はすべて、CPUが読み取って処理を実行する前に、バイナリコード(0と1だけで構成される2進数)へと変換されます。そして、処理結果も再び人間が読める形式へと翻訳されるのです。ここで一つ問題が生じます。「日付」は単純な0と1だけでは表現しきれない情報だという点です。この課題を解決するため、コンピュータ科学者たちは、あらゆる日付を「共通の基準点から経過した秒数」に変換する方式を採用しました。コンピュータに日付を与えると、内部では秒数へ変換され、時刻の起点となる最初の1秒から何秒経過したかが