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

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が発生するため、実際のデータに応じて適切に指定することが重要です。

  1. Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説

    Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ

  2. Unixエポックタイムスタンプとは?エポック時間を日付に変換する方法を徹底解説

    コンピュータは、人間が使う自然言語(英語など)をそのまま理解できないことをご存知でしょうか?私たちが入力した命令はすべて、CPUが読み取って処理を実行する前に、バイナリコード(0と1だけで構成される2進数)へと変換されます。そして、処理結果も再び人間が読める形式へと翻訳されるのです。ここで一つ問題が生じます。「日付」は単純な0と1だけでは表現しきれない情報だという点です。この課題を解決するため、コンピュータ科学者たちは、あらゆる日付を「共通の基準点から経過した秒数」に変換する方式を採用しました。コンピュータに日付を与えると、内部では秒数へ変換され、時刻の起点となる最初の1秒から何秒経過したかが