Pythonで現在時刻をミリ秒単位で取得するにはどうすればよいですか。
私が必要としていることのために、上の@samplebiasのコメントに基づいて、私がしたことがここにあります:
import time
millis = int(round(time.time() * 1000))
print millis
簡単だよ。みんなありがとう、脳おならをごめんね。
再利用のために:
import time
current_milli_time = lambda: int(round(time.time() * 1000))
その後:
>>> current_milli_time()
1378761833768
time.time()
は2番目に解決を与えるだけかもしれません、ミリ秒のための好ましいアプローチは datetime
です。
from datetime import datetime
dt = datetime.now()
dt.microsecond
def TimestampMillisec64():
return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000)
別の解決策はあなたがあなた自身のutils.pyに埋め込むことができる機能です
import time as time_ #make sure we don't override time
def millis():
return int(round(time_.time() * 1000))
Datetime付きのミリ秒を返す単純なメソッドがコードに必要な場合:
from datetime import datetime
from datetime import timedelta
start_time = datetime.now()
# returns the elapsed milliseconds since the start of the program
def millis():
dt = datetime.now() - start_time
ms = (dt.days * 24 * 60 * 60 + dt.seconds) * 1000 + dt.microseconds / 1000.0
return ms
ただサンプルコード:
import time
timestamp = int(time.time()*1000.0)
出力:1534343781311
現在のUTC時間をミリ秒単位で取得する最も簡単な方法は次のとおりです。
# timeutil.py
import datetime
def get_epochtime_ms():
return round(datetime.datetime.utcnow().timestamp() * 1000)
# sample.py
import timeutil
timeutil.get_epochtime_ms()
バージョン3.7からtime.time_ns()
を使用して、Epochからナノ秒経過した時間を取得できます。だからあなたはできる
ms = time.time_ns() // 1000000
整数秒でミリ秒単位で時間を取得します。
ミリ秒で1000にこれらの乗算を行うことは、解決するか、何らかの前提条件を受け入れられるようにするのに適切です。実際には使用しないデータベースのギャップを埋めるために使用できます。ただし、正確なタイミングを必要とする実際の状況では、最終的に失敗します。特定のタイミングでアクションや処理を必要とするミッションクリティカルな操作にこの方法を使用することはお勧めしません。
たとえば、米国では往復のpingは30〜80ミリ秒です。それを切り上げて効率的に使用することはできません。
私の例では、1秒ごとにタスクが必要です。つまり、最初のタスクが応答した後に切り上げると、メインループサイクルごとに処理時間を掛けたままになります。これは、60秒ごとの合計関数呼び出しになりました。それは1日1440までです。あまり正確ではありません。
実際に使用することのないデータベースのギャップを解決することを超えて、より正確な推論を探している人のための考えです。