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

Pythonのdatetimeをstrftimeでエポック秒に変換する方法

Pythonでdatetimeオブジェクトをエポック(Unix時間)に変換したい場合、strftime関数に「エポックからの経過秒数」として日付を整形するための書式指定子 %s を含むフォーマット文字列を渡します。

コード例

import datetime
timestamp = datetime.datetime(2017, 12, 1, 0, 0).strftime('%s')
print(timestamp)

実行結果

上記のコードを実行すると、次のような出力が得られます。

1512086400

ただし、%s はプラットフォーム(OSやCライブラリ)によって挙動が異なる非公式な指定子である点に注意してください。移植性を重視するなら、次に紹介する timestamp() メソッドの利用が推奨されます。

Python 3.3以降を使用している場合は、datetimeオブジェクトが持つ timestamp() メソッドを呼び出すだけで、エポックからの経過秒数を簡単に取得できます。

コード例

import datetime
timestamp = datetime.datetime(2017, 12, 1, 0, 0).timestamp()
print(timestamp)

実行結果

こちらも同じ日時に対して、以下のようにエポック秒が出力されます。なお、timestamp() の戻り値は浮動小数点数(float)であるため、小数部が表示される場合があります。

1512086400.0
  1. 【Python入門】strptimeを使って日付文字列をdateオブジェクトに変換する方法

    Pythonでは、datetimeモジュールのstrptime関数を使うことで、文字列形式の日付データを簡単にdatetimeオブジェクトへ変換できます。この関数には、変換したい日付の文字列と、その日付がどのような書式で記述されているかを示すフォーマット指定子の2つの引数を渡します。基本的な使い方(サンプルコード)以下の例では、「2017年12月29日」という日付が「29122017」という文字列として表現されている場合に、それを日付オブジェクトへ変換しています。import datetime date_str = 29122017 # 日付文字列(2017年12月29日) format

  2. Pythonで文字列を辞書(dict)に変換する方法|ast.literal_evalとjson.loadsの使い分け

    Pythonでは、文字列形式で表現された辞書データを実際のdictオブジェクトに変換したい場面がよくあります。主な方法としては、標準ライブラリの ast.literal_eval() を使う方法と、json モジュールを使う方法の2つがあります。それぞれの特徴と使い方を詳しく見ていきましょう。 方法1:ast.literal_eval() を使う ast.literal_eval() は、文字列をPythonの式として安全に評価する関数です。任意のコードを実行できてしまう eval() とは異なり、リテラル構造以外は評価しないため、セキュリティ面でも安心して利用できます。 評価できるのは、文