PythonでDateTime文字列をミリ秒単位の整数に変換する方法を徹底解説
Pythonでは、timeモジュールを使うことで、現在時刻をミリ秒単位の整数として簡単に取得できます。基本的な考え方は、まず time.time() 関数で秒単位の時刻(浮動小数点数)を取得し、それに1000を掛けて四捨五入することでミリ秒に変換するというものです。
現在時刻をミリ秒で取得する方法
以下のサンプルコードでは、現在のUNIXタイムスタンプをミリ秒単位の整数として取得しています。
import time milliseconds = int(round(time.time() * 1000)) print(milliseconds)
実行結果
このコードを実行すると、次のような出力が得られます。
1514825676008
なお、出力される値は実行した瞬間の時刻によって異なります。
datetimeオブジェクトをミリ秒のタイムスタンプに変換する
特定の日付を持つ datetime オブジェクトをミリ秒単位のタイムスタンプに変換したい場合は、timestamp() メソッドを使います。このメソッドは秒単位の浮動小数点数を返すため、先ほどと同じように1000倍して整数化します。
import time from datetime import datetime dt = datetime(2018, 1, 1) milliseconds = int(round(dt.timestamp() * 1000)) print(milliseconds)
実行結果
このコードを実行すると、次のような出力が得られます。
1514745000000
補足:より正確な丸め処理について
round() ではなく int() のみでキャストすると、小数部分が切り捨てられるため、わずかに誤差が生じる可能性があります。より厳密な精度が必要な場面では、上記のように round() を組み合わせることをおすすめします。また、Python 3.3以降では time.time_ns() を使ってナノ秒単位で取得し、1000000で割る方法もあります。
-
Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説
Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ
-
Pythonで16進文字列をintに変換する方法をわかりやすく解説
Pythonで16進文字列をintに変換する基本 Pythonでは、組み込み関数 int() を使うことで、16進数の文字列を簡単に整数(int型)へ変換できます。16進文字列には一般的に「0x」というプレフィックスが付いており、その有無によって指定方法が少し異なります。 「0x」プレフィックスがある場合 文字列に「0x」プレフィックスが付いている場合は、int(文字列, 0) のように第2引数に 0 を指定します。こうすることで、Pythonがプレフィックスをもとに基数を自動的に判別してくれます。 >>> int(0xfe43, 0) 65091 「0x」プレフィックス